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



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










