時(shí)間:2024-03-11 09:59:54來(lái)源:深圳市雷賽智能控制股份有限公司
自由協(xié)議通訊也稱無(wú)協(xié)議通訊,需要根據(jù)對(duì)方設(shè)備的通訊數(shù)據(jù)格式編寫一個(gè)臨時(shí)協(xié)議,雖然隨著標(biāo)準(zhǔn)協(xié)議(Modbus,USS等)的普及,自由協(xié)議通訊應(yīng)用越來(lái)越少,但是對(duì)于一些小的設(shè)備如掃碼槍、LCD顯示屏等,由于沒(méi)有集成標(biāo)準(zhǔn)通訊協(xié)議,所以只能選用自由協(xié)議通訊。以下例程是基于MC532(同平臺(tái)其它系列使用方法相同) PLC的RS232及RS485硬件端口與電腦串口調(diào)試助手(用于模擬串口設(shè)備)的自由協(xié)議通信例程說(shuō)明。
MC532 PLC端設(shè)置及程序編寫
1、添加通訊功能庫(kù)
左鍵雙擊【庫(kù)管理器】—左鍵單擊【添加庫(kù)】,搜索【Serial Communication】,單擊【確定】即可添加完成。
2、創(chuàng)建如圖所示的變量
3、調(diào)用如圖所示的功能塊
4、編寫如圖所示程序 ①調(diào)用COM.Open,此功能塊為打開(kāi)串口;變量usiListLength為變量pParameterList的數(shù)據(jù)長(zhǎng)度(根據(jù)后續(xù)介紹可知,數(shù)據(jù)長(zhǎng)度為7);變量pParameterList為指針變量,指針地址指向結(jié)構(gòu)體COM.PARAMETER的數(shù)組aParamsB115200,數(shù)組包含了udiPort,udiValue(波特率)、udiBaudrate,udiValue(端口號(hào)) 、 udiParity,udiValue(校驗(yàn)) 、 udiStopBits,udiValue(停止位) 、udiTimeout,udiValue(超時(shí)時(shí)間) 、udiByteSize,udiValue(數(shù)據(jù)位)及udiBinary,udiValue(二進(jìn)制參數(shù),啟用二進(jìn)制模式)7種關(guān)于串口的參數(shù),相關(guān)的變量創(chuàng)建直接參照下列庫(kù)文件中的例程,再對(duì)參數(shù)進(jìn)行設(shè)置;變量hCom為結(jié)構(gòu)體CAA.HANDLE數(shù)據(jù)類型,獲取通訊句柄;②udiPort,udiValue:波特率,此次例程設(shè)置波特率為115200;udiBaudrate,udiValue:端口號(hào),2PLC的RS232端口為COM2,第一個(gè)RS485端口為COM0,第二個(gè)RS485端口為COM1,因此可根據(jù)使用不同硬件端口進(jìn)行賦值;udiParity,udiValue:校驗(yàn)類型(奇校驗(yàn)、偶校驗(yàn)或無(wú)校驗(yàn)),此次例程設(shè)置偶校驗(yàn),賦值COM.PARITY.EVEN ;udiStopBits,udiValue:停止位( ONESTOPBIT/ONE5STOPBIT/TWOSTOPBIT ),此次例程設(shè)置為ONESTOPBIT;udiTimeout,udiValue:超時(shí)時(shí)間,此次例程設(shè)置成500ms;udiByteSize,udiValue:數(shù)據(jù)位,此次例程設(shè)置成8;udiBinary,udiValue:二進(jìn)制參數(shù),采取默認(rèn)值設(shè)置成1即可;設(shè)置完成后由于pParameterList為指針類型,則填入ADR(aParamsB115200)即可;
③調(diào)用COM.Write,此功能塊為串口發(fā)送數(shù)據(jù);變量udiTimeout超時(shí)時(shí)間,此次例程設(shè)置為500ms;變量hCom為結(jié)構(gòu)體CAA.HANDLE數(shù)據(jù)類型,為通訊句柄,可從Com.Open中的輸出變量hCom獲取;pBuffer為指針類型,數(shù)據(jù)指向串口發(fā)送數(shù)據(jù)緩存的地址,本例程設(shè)置寫入數(shù)值變量為BYTE類型的byWriteData,因此本例程填入ADR(byWriteData);szSize
為寫入數(shù)據(jù)長(zhǎng)度,此次例程設(shè)置為10個(gè)BYTE數(shù)據(jù)長(zhǎng)度,因此填入10;④調(diào)用COM.Read,此功能塊為串口讀取數(shù)據(jù);變量udiTimeout超時(shí)時(shí)間,此次例程設(shè)置為500ms;變量hCom為結(jié)構(gòu)體CAA.HANDLE數(shù)據(jù)類型,為通訊句柄,可從Com.Open
中的輸出變量
hCom獲取;pBuffer為指針類型,數(shù)據(jù)指向串口讀取數(shù)據(jù)緩存的地址,本例程設(shè)置寫入數(shù)值變量為BYTE類型的byReadData,因此本例程填入ADR(byReadData);szBuffer為從串口緩存讀取數(shù)據(jù)的大小,此次例程設(shè)置為10個(gè)BYTE數(shù)據(jù)長(zhǎng)度,因此填入10;⑤調(diào)用COM.Close,此功能塊為關(guān)閉串口;變量hCom為結(jié)構(gòu)體CAA.HANDLE數(shù)據(jù)類型,為通訊句柄,可從Com.Open中的輸出變量hCom獲取。
打開(kāi)串口助手,設(shè)置相關(guān)參數(shù)
1、打開(kāi)計(jì)算機(jī)管理,查看計(jì)算機(jī)串口端口號(hào)(本次例程使用USB轉(zhuǎn)串口,端口號(hào)為COM4)
2、打開(kāi)串口助手軟件(大家可自行在網(wǎng)絡(luò)上搜索購(gòu)買,使用方法基本類似)并設(shè)置相關(guān)參數(shù)
【端口】COM4(計(jì)算機(jī)端口號(hào));【波特率】115200;【數(shù)據(jù)位】8;【校驗(yàn)位】E偶;【停止位】1;左鍵單擊選擇【輸入 HEX】及【顯示HEX】,設(shè)置以16進(jìn)制數(shù)據(jù)類型進(jìn)行寫入及顯示;左鍵單擊【打開(kāi)串口】即可。
PLC與電腦端做數(shù)據(jù)發(fā)送及讀取
1、PLC發(fā)送數(shù)據(jù),電腦端讀取數(shù)據(jù)
觸發(fā)COM.Open打開(kāi)串口端口,對(duì)byWriteData賦值十進(jìn)制數(shù)65(16進(jìn)制為0x41)后觸發(fā)COM.Write,可見(jiàn)電腦端可讀取PLC發(fā)送的數(shù)值。
2、電腦端發(fā)送數(shù)據(jù),PLC端讀取數(shù)據(jù)
通過(guò)串口助手發(fā)送16進(jìn)制數(shù)值0x86;觸發(fā)COM.Open打開(kāi)串口端口,關(guān)閉串口數(shù)據(jù)寫入功能塊,觸發(fā)COM.Read 功能塊,可成功讀取16進(jìn)制數(shù)值0x86(十進(jìn)制為134)
-END-
中國(guó)傳動(dòng)網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來(lái)源:中國(guó)傳動(dòng)網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國(guó)傳動(dòng)網(wǎng)(www.hysjfh.com)獨(dú)家所有。如需轉(zhuǎn)載請(qǐng)與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來(lái)源“中國(guó)傳動(dòng)網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明其他來(lái)源的稿件,均來(lái)自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請(qǐng)保留稿件來(lái)源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。
產(chǎn)品新聞
更多>激光閃耀 智慧引領(lǐng) | WISE MASER 黑武士...
2025-03-20
2025-03-13
2025-03-06
2025-02-25
萊盟R系列: 精密驅(qū)動(dòng),智造未來(lái)
2025-02-21
管材加工“黑科技”:WiseCAM導(dǎo)入重構(gòu)新...
2025-02-21