S7-200系列PLC中的自由口通信是一種比較靈活的通信,相對而言其通信程序的設(shè)計難度也會更大點,有很多學(xué)員問我,設(shè)計自由口通信有沒有什么設(shè)計思路可供參考,接下就簡單分享下本人認(rèn)為的自由口通信程序的設(shè)計思路,僅供大家參考
這里以S7-200PLC通過三菱的專用通信協(xié)議控制三菱的變頻器,實現(xiàn)對變頻器的運行及頻率修改以及變頻器狀態(tài)監(jiān)視為例,說明自由口通信程序設(shè)計時的一個完整過程,過程如下圖所示:
一、 編寫前期準(zhǔn)備工作:
分析通信協(xié)議,根據(jù)通信協(xié)議準(zhǔn)備需要發(fā)送的數(shù)據(jù),確定接收信息時使用何種方式作為消息的起始條件和結(jié)束條件的判斷方式,確定校驗的算法,并設(shè)計校驗的功能塊程序。
1) 根據(jù)通信協(xié)議,準(zhǔn)備需要發(fā)送的數(shù)據(jù)和回傳數(shù)據(jù)的格式。三菱專用通信協(xié)議格式如下所示。
PLC寫入到變頻器的數(shù)據(jù)格式:
發(fā)送:
回傳:
PLC從變頻器中讀取數(shù)據(jù)的數(shù)據(jù)格式:
發(fā)送數(shù)據(jù)的數(shù)據(jù)格式:
回傳數(shù)據(jù)格式:
正確回傳:
錯誤回傳:
校驗:
指令代碼:
根據(jù)以上通信協(xié)議的描述,我們可以準(zhǔn)備如下的通信用數(shù)據(jù):



根據(jù)通信協(xié)議準(zhǔn)備好的數(shù)據(jù)格式,確定接收信息時的起始條件和結(jié)束條件的判斷及通信校驗程序的設(shè)計。
從上面通信協(xié)議及準(zhǔn)備好的通信的數(shù)據(jù)中,可以發(fā)現(xiàn)回傳的信息中并特定的字符作為消息的起始和結(jié)束條件,因此在此可以使用空閑線作為消息的起始條件判斷,使用消息定時器作為消息的結(jié)束條件的判斷。
對于校驗程序的算法使用的是對從站好開始的ASCAII所對應(yīng)的十六進(jìn)制數(shù)相加,然后取其低八位數(shù)據(jù)在轉(zhuǎn)換成ASCAII作為校驗碼,依次根據(jù)算法可編寫一個對應(yīng)的校驗功能塊的子程序如下所示:










