西門(mén)子ET200模塊6ES7131-6BF01-0AA0
3 PLC通信數(shù)據(jù)幀介紹
計(jì)算機(jī)與P L C通信時(shí),按應(yīng)答方式進(jìn)行。由計(jì)算機(jī)發(fā)給PLC一組ASCII碼字符數(shù)據(jù),這一組數(shù)據(jù)成為命令幀。P L C對(duì)收到的命令幀進(jìn)行校驗(yàn),并將校驗(yàn)結(jié)果返回給計(jì)算機(jī),P L C返回給計(jì)算機(jī)的這一組數(shù)據(jù)稱為響應(yīng)幀,只有當(dāng)校驗(yàn)正確時(shí)P L C才按照命令執(zhí)行。計(jì)算機(jī)和P L C通信時(shí),PLC是被動(dòng)的,必須先由計(jì)算機(jī)給PLC發(fā)出命令幀,PLC再給計(jì)算機(jī)發(fā)出響應(yīng)幀,每幀最多由1 3 1個(gè)字符組成。下面將命令幀與響應(yīng)幀的組成結(jié)構(gòu)介紹如下:
3.1命令幀
幀結(jié)構(gòu)解析:
@:在起始處必須放置;
節(jié)點(diǎn)號(hào):有效值為00~31,表示PC機(jī)最多可同32臺(tái)PLC通信;
頭代碼:PLC的命令代碼;
發(fā)送文本:P C機(jī)發(fā)送的命令參數(shù);
FCS(Frame Check Sequence):
幀檢查順序代碼(幀校驗(yàn)碼);幀校驗(yàn)碼是2位(Bit)十六進(jìn)制數(shù)。它是由幀數(shù)據(jù)包含的所有字符的ASCII碼進(jìn)行位異或運(yùn)算的結(jié)果。
終止符:“*"號(hào)和回車(chē)符“CR"。
3.2響應(yīng)幀
幀結(jié)構(gòu)解析:
@:返回命令頭;
節(jié)點(diǎn)號(hào):有效值為00—31,返回?cái)?shù)據(jù)的PLC節(jié)點(diǎn)號(hào)
頭代碼:PLC的命令代碼;
尾代碼:返回命令完成狀態(tài)碼;
接收文本:在有數(shù)據(jù)時(shí)返回的數(shù)據(jù);
FCS:幀檢查順序代碼;
終止符:“*"號(hào)和回車(chē)符“CR"。
3.3 FCS(幀數(shù)據(jù)冗余校驗(yàn)碼)的計(jì)算
為了降低串行通信的誤碼率,在接收和發(fā)送端都必須對(duì)數(shù)據(jù)進(jìn)行校驗(yàn),常用的方法是進(jìn)行F C S校驗(yàn)。對(duì)幀數(shù)據(jù)進(jìn)行冗余校驗(yàn)計(jì)算時(shí),應(yīng)對(duì)幀數(shù)據(jù)中各個(gè)字符的ASCII碼進(jìn)行位異或運(yùn)算,然后將結(jié)果轉(zhuǎn)為2位十六進(jìn)制字符。
4計(jì)算機(jī)與PLC串行通信程序?qū)嵗?/span>
4.1通信主程序的設(shè)計(jì)架構(gòu)
設(shè)計(jì)通信主程序的主要功能是:實(shí)現(xiàn)計(jì)算機(jī)對(duì)PLC的運(yùn)行控制和狀態(tài)監(jiān)視,即構(gòu)成一個(gè)閉環(huán)監(jiān)控系統(tǒng)。
4.2打開(kāi)串行通信端口
打開(kāi)通信端口,對(duì)端口進(jìn)行初始化設(shè)置,程序設(shè)計(jì)流程。
4.3寫(xiě)PLC數(shù)據(jù)
將計(jì)算機(jī)發(fā)出的命令寫(xiě)入PLC,實(shí)現(xiàn)計(jì)算機(jī)對(duì)PLC的控制功能。程序設(shè)計(jì)流程
4.4讀PLC數(shù)據(jù)。
從PLC中讀取數(shù)據(jù),監(jiān)視PLC的運(yùn)行狀態(tài),程序設(shè)計(jì)流程。