時間:2024-03-11 09:59:54來源:深圳市雷賽智能控制股份有限公司
自由協議通訊也稱無協議通訊,需要根據對方設備的通訊數據格式編寫一個臨時協議,雖然隨著標準協議(Modbus,USS等)的普及,自由協議通訊應用越來越少,但是對于一些小的設備如掃碼槍、LCD顯示屏等,由于沒有集成標準通訊協議,所以只能選用自由協議通訊。以下例程是基于MC532(同平臺其它系列使用方法相同) PLC的RS232及RS485硬件端口與電腦串口調試助手(用于模擬串口設備)的自由協議通信例程說明。
MC532 PLC端設置及程序編寫
1、添加通訊功能庫
左鍵雙擊【庫管理器】—左鍵單擊【添加庫】,搜索【Serial Communication】,單擊【確定】即可添加完成。
2、創建如圖所示的變量
3、調用如圖所示的功能塊
4、編寫如圖所示程序 ①調用COM.Open,此功能塊為打開串口;變量usiListLength為變量pParameterList的數據長度(根據后續介紹可知,數據長度為7);變量pParameterList為指針變量,指針地址指向結構體COM.PARAMETER的數組aParamsB115200,數組包含了udiPort,udiValue(波特率)、udiBaudrate,udiValue(端口號) 、 udiParity,udiValue(校驗) 、 udiStopBits,udiValue(停止位) 、udiTimeout,udiValue(超時時間) 、udiByteSize,udiValue(數據位)及udiBinary,udiValue(二進制參數,啟用二進制模式)7種關于串口的參數,相關的變量創建直接參照下列庫文件中的例程,再對參數進行設置;變量hCom為結構體CAA.HANDLE數據類型,獲取通訊句柄;②udiPort,udiValue:波特率,此次例程設置波特率為115200;udiBaudrate,udiValue:端口號,2PLC的RS232端口為COM2,第一個RS485端口為COM0,第二個RS485端口為COM1,因此可根據使用不同硬件端口進行賦值;udiParity,udiValue:校驗類型(奇校驗、偶校驗或無校驗),此次例程設置偶校驗,賦值COM.PARITY.EVEN ;udiStopBits,udiValue:停止位( ONESTOPBIT/ONE5STOPBIT/TWOSTOPBIT ),此次例程設置為ONESTOPBIT;udiTimeout,udiValue:超時時間,此次例程設置成500ms;udiByteSize,udiValue:數據位,此次例程設置成8;udiBinary,udiValue:二進制參數,采取默認值設置成1即可;設置完成后由于pParameterList為指針類型,則填入ADR(aParamsB115200)即可;
③調用COM.Write,此功能塊為串口發送數據;變量udiTimeout超時時間,此次例程設置為500ms;變量hCom為結構體CAA.HANDLE數據類型,為通訊句柄,可從Com.Open中的輸出變量hCom獲取;pBuffer為指針類型,數據指向串口發送數據緩存的地址,本例程設置寫入數值變量為BYTE類型的byWriteData,因此本例程填入ADR(byWriteData);szSize
為寫入數據長度,此次例程設置為10個BYTE數據長度,因此填入10;④調用COM.Read,此功能塊為串口讀取數據;變量udiTimeout超時時間,此次例程設置為500ms;變量hCom為結構體CAA.HANDLE數據類型,為通訊句柄,可從Com.Open
中的輸出變量
hCom獲取;pBuffer為指針類型,數據指向串口讀取數據緩存的地址,本例程設置寫入數值變量為BYTE類型的byReadData,因此本例程填入ADR(byReadData);szBuffer為從串口緩存讀取數據的大小,此次例程設置為10個BYTE數據長度,因此填入10;⑤調用COM.Close,此功能塊為關閉串口;變量hCom為結構體CAA.HANDLE數據類型,為通訊句柄,可從Com.Open中的輸出變量hCom獲取。
打開串口助手,設置相關參數
1、打開計算機管理,查看計算機串口端口號(本次例程使用USB轉串口,端口號為COM4)
2、打開串口助手軟件(大家可自行在網絡上搜索購買,使用方法基本類似)并設置相關參數
【端口】COM4(計算機端口號);【波特率】115200;【數據位】8;【校驗位】E偶;【停止位】1;左鍵單擊選擇【輸入 HEX】及【顯示HEX】,設置以16進制數據類型進行寫入及顯示;左鍵單擊【打開串口】即可。
PLC與電腦端做數據發送及讀取
1、PLC發送數據,電腦端讀取數據
觸發COM.Open打開串口端口,對byWriteData賦值十進制數65(16進制為0x41)后觸發COM.Write,可見電腦端可讀取PLC發送的數值。
2、電腦端發送數據,PLC端讀取數據
通過串口助手發送16進制數值0x86;觸發COM.Open打開串口端口,關閉串口數據寫入功能塊,觸發COM.Read 功能塊,可成功讀取16進制數值0x86(十進制為134)
-END-
上一篇:便攜儲能的新市場在汽柴油發...
下一篇:用了變頻器就節能了嗎?變頻...
中國傳動網版權與免責聲明:凡本網注明[來源:中國傳動網]的所有文字、圖片、音視和視頻文件,版權均為中國傳動網(www.siyutn.com)獨家所有。如需轉載請與0755-82949061聯系。任何媒體、網站或個人轉載使用時須注明來源“中國傳動網”,違反者本網將追究其法律責任。
本網轉載并注明其他來源的稿件,均來自互聯網或業內投稿人士,版權屬于原版權人。轉載請保留稿件來源及作者,禁止擅自篡改,違者自負版權法律責任。
產品新聞
更多>2025-06-06
2025-05-19
2025-04-30
2025-04-11
2025-04-08
2025-03-31