1 引言
由于plc結(jié)構(gòu)緊湊、可靠性高、靈活性強(qiáng),因而廣泛應(yīng)用于各種自動(dòng)化系統(tǒng)?,F(xiàn)在普遍采用觸摸屏加plc的方法來監(jiān)控設(shè)備,但觸摸屏視角窄、不適應(yīng)惡劣環(huán)境,且plc的數(shù)據(jù)存儲能力相當(dāng)有限、不易實(shí)現(xiàn)大規(guī)模網(wǎng)絡(luò)互聯(lián)。有鑒于此,我們采用優(yōu)秀的可視化軟件visual basic,由計(jì)算機(jī)加plc組建監(jiān)控系統(tǒng)。該系統(tǒng)既克服了由觸摸屏加plc組建的監(jiān)控系統(tǒng)的不足,又可完成對設(shè)備的實(shí)時(shí)監(jiān)控。
2 串行通訊協(xié)議
計(jì)算機(jī)與plc通訊時(shí),一般由計(jì)算機(jī)發(fā)命令給plc,啟動(dòng)通信,plc收到命令后自動(dòng)發(fā)回應(yīng)答。下面給出了命令幀、應(yīng)答幀以及幀檢查的結(jié)構(gòu)。
fcs(frame checksum)表示報(bào)頭開始到報(bào)文結(jié)束間所有數(shù)據(jù)執(zhí)行邏輯加操作所得的結(jié)果。
它由兩位ascii碼字符組成,每次plc接收到計(jì)算機(jī)發(fā)送過來的一幀數(shù)據(jù),即計(jì)算其校驗(yàn)和,結(jié)果記為fcs2,將fcs2與幀中所包含的fcs1比較,可檢查該幀是否有數(shù)據(jù)錯(cuò)誤。如果有數(shù)據(jù)錯(cuò)誤,plc立即發(fā)送錯(cuò)誤信息給計(jì)算機(jī),利用這一機(jī)制,有效防止了數(shù)據(jù)傳輸錯(cuò)誤。
3 串行通信口初始化
3.1 計(jì)算機(jī)串行通信口初始化
vb的mscomm控件通過串行端口傳送和接收數(shù)據(jù)。因此,可通過對visual basic的mscomm控件的相關(guān)屬性的設(shè)置來對串口進(jìn)行初始化。
mscomm控件的主要屬性如表1
計(jì)算機(jī)串口初始化程序段如下:
with mscomm1
.portopen = false
.commport = 1 file://設(shè)置通信端口號為1
.settings=“9600,n,8,1” file://波特率為9600,不作
file://字符校驗(yàn),8位數(shù)據(jù)位,1位停止位
.portopen=true file://打開通信端口
.inputmode=cominputmodebinary file://以字節(jié)方式接收數(shù)據(jù)
end with
3.2 plc串行通信口初始化
西門子s7-200可以采用用戶定義通信協(xié)議(自由口)模式實(shí)現(xiàn)計(jì)算機(jī)與plc、plc與plc的通信。自由口通信是通過用戶程序控制s7-200 cpu串行通信口的操作模式。利用自由口模式可實(shí)現(xiàn)用戶定義通信協(xié)議連接多種智能設(shè)備。s7-200 cpu自由口的控制字節(jié)描述如表2。
plc串口初始化程序如下:
ld sm0.1 file://首次掃描閉合
movb 16#09,smb30 file://初始化自由口,9600波特率,
file://8位數(shù)據(jù),無校驗(yàn)
movb 16#e0,smb87 file://初始化接收控制信息,檢測信
file://息結(jié)束符、空閑線信息條件
movb 16#24,smb88 file://信息字符開始
movb 16#2a,smb89 file://信息字符結(jié)束
movb +5,smw90 file://設(shè)置空閑線超時(shí)時(shí)間
movb 200,smb94 file://設(shè)置最大允許接收字符數(shù)
atch int_0,23 file://設(shè)置接收完成中斷
atch int_1,9 file://設(shè)置發(fā)送完成中斷
eni file://設(shè)置用戶中斷允許
轉(zhuǎn)載請注明出處。