《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 其他 > 設(shè)計(jì)應(yīng)用 > 可編程控制器與計(jì)算機(jī)通訊的應(yīng)用
可編程控制器與計(jì)算機(jī)通訊的應(yīng)用
中國(guó)自動(dòng)化網(wǎng)
摘要: 可編程控制器(plc)由于其結(jié)構(gòu)緊湊、可靠性高、編程簡(jiǎn)單,、指令強(qiáng)大,、靈活性強(qiáng),、能適用于比較惡劣環(huán)境等諸多優(yōu)點(diǎn),,現(xiàn)已在工業(yè)控制領(lǐng)域得到廣泛應(yīng)用?,F(xiàn)普遍采用觸摸屏加plc的方法來(lái)監(jiān)控設(shè)備,,但觸摸屏視角窄,,不適應(yīng)惡劣環(huán)境,,且數(shù)據(jù)存儲(chǔ)容量有限,不易實(shí)現(xiàn)大規(guī)模網(wǎng)絡(luò)互聯(lián),。因此我們采用plc與計(jì)算機(jī)通訊的方式實(shí)現(xiàn)實(shí)時(shí)監(jiān)控,,克服了觸摸屏的缺點(diǎn)。
Abstract:
Key words :

1 引言
可編程控制器(plc)由于其結(jié)構(gòu)緊湊,、可靠性高,、編程簡(jiǎn)單、指令強(qiáng)大,、靈活性強(qiáng),、能適用于比較惡劣環(huán)境等諸多優(yōu)點(diǎn),現(xiàn)已在工業(yè)控制領(lǐng)域得到廣泛應(yīng)用?,F(xiàn)普遍采用觸摸屏加plc的方法來(lái)監(jiān)控設(shè)備,,但觸摸屏視角窄,不適應(yīng)惡劣環(huán)境,,且數(shù)據(jù)存儲(chǔ)容量有限,,不易實(shí)現(xiàn)大規(guī)模網(wǎng)絡(luò)互聯(lián)。因此我們采用plc與計(jì)算機(jī)通訊的方式實(shí)現(xiàn)實(shí)時(shí)監(jiān)控,,克服了觸摸屏的缺點(diǎn),。
2 s7-200 cpu自由口通訊方式的應(yīng)用
世界知名品牌的plc很多,如西門(mén)子,、歐姆龍,、松下、三菱等等,,本人僅以西門(mén)子s7-200小型可編程控制器的cpu22×系列為例,,介紹plc在計(jì)算機(jī)網(wǎng)絡(luò)中與計(jì)算機(jī)通訊的功能。
s7-200 cpu支持多樣的通訊功能,,根據(jù)所使用的s7-200 cpu,,其網(wǎng)絡(luò)可以支持一個(gè)或多個(gè)以下協(xié)議:
點(diǎn)到點(diǎn)(point-to-point)接口(ppi)
多點(diǎn)接口(multi-point)(mpi)
profibus
用戶(hù)定義協(xié)議(自由口)
自由口通訊是通過(guò)用戶(hù)程序可以控制s7-200 cpu通訊口的操作模式。利用自由口模式,,可以實(shí)現(xiàn)用戶(hù)定義的通訊協(xié)議連接多種智能設(shè)備,。通過(guò)使用接收中斷、發(fā)送中斷,、發(fā)送指令和接收指令,,用戶(hù)程序控制通訊口操作。在自由口通訊模式下,通訊協(xié)議完全由用戶(hù)程序控制,。通過(guò)smb30(口0)允許自由口模式,,而且只有在cpu處于run模式時(shí)才能允許。當(dāng)cpu出于stop模式時(shí),,自由口通訊停止,,通訊口轉(zhuǎn)換成正常的ppi協(xié)議操作。
近年來(lái),,隨著我國(guó)鐵路運(yùn)輸環(huán)境的改善,,列車(chē)速度越來(lái)越高,勢(shì)必對(duì)鐵道車(chē)輛提出較高的要求,,其表現(xiàn)在對(duì)列車(chē)的舒適性和運(yùn)行可靠性,、安全性的要求提高,,因此車(chē)輛上設(shè)備的自動(dòng)化程度越來(lái)越高,。自動(dòng)化程度的提高,帶動(dòng)了網(wǎng)絡(luò)技術(shù)在列車(chē)控制和監(jiān)控上的應(yīng)用,。車(chē)輛網(wǎng)絡(luò)控制,、監(jiān)控簡(jiǎn)圖如圖1所示。
整列車(chē)設(shè)有車(chē)輛級(jí)計(jì)算機(jī),,每個(gè)車(chē)廂設(shè)有本車(chē)計(jì)算機(jī),,車(chē)輛級(jí)計(jì)算機(jī)與各個(gè)本車(chē)計(jì)算機(jī)組成車(chē)輛的主網(wǎng),本車(chē)計(jì)算機(jī)與本車(chē)廂內(nèi)的各個(gè)設(shè)備間組成子網(wǎng),。plc由于其自身的優(yōu)點(diǎn),,作為控制核心在車(chē)輛上的多種設(shè)備中得以應(yīng)用,例如列車(chē)自動(dòng)門(mén)的控制,、列車(chē)空調(diào)機(jī)的控制等,,使其可以作為整個(gè)列車(chē)網(wǎng)絡(luò)系統(tǒng)中的一個(gè)節(jié)點(diǎn)。


3 通訊協(xié)議
siemens s7-200系列plc可以采用用戶(hù)定義通訊協(xié)議(自由口)模式實(shí)現(xiàn)計(jì)算機(jī)與plc,、plc與plc的通訊,。筆者所描述的例子中,雖然車(chē)輛計(jì)算機(jī)系統(tǒng)和車(chē)輛上的其它設(shè)備分別是多個(gè)設(shè)備供應(yīng)商的產(chǎn)品,,但是只要制定好通訊協(xié)議,,就能滿(mǎn)足相互通訊的要求。s7-200系列的plc正是由于其自由口通訊是通過(guò)用戶(hù)程序控制cpu串行通訊口的操作模式,,所以可以方便地與車(chē)輛計(jì)算機(jī)通訊,。
計(jì)算機(jī)(主站)每隔100ms查詢(xún)plc(從站)一次,主站發(fā)出從站動(dòng)作控制命令給從站,,從站收到命令后發(fā)給主站應(yīng)答幀,,從站接收到主站發(fā)送來(lái)的一幀數(shù)據(jù),計(jì)算出其校驗(yàn)碼fcs,與接收到的一幀數(shù)據(jù)中的fcs比較,,檢查是否有數(shù)據(jù)錯(cuò)誤,。如果有數(shù)據(jù)有誤,從站發(fā)送信息給主站,,請(qǐng)求重發(fā),。
l 字符結(jié)構(gòu):每個(gè)字符由11位構(gòu)成,奇偶校驗(yàn)位采用奇校驗(yàn)方式,。
起始位 數(shù)據(jù) 奇偶校驗(yàn)位 停止位
1位 8位 d7…d0 1位 1位
l 傳輸數(shù)據(jù)幀格式
byte(0)…byte(n) fcs
byte(0)…byte(n)為字符串;
fcs為異或校驗(yàn)碼,,是發(fā)送的所有數(shù)據(jù)字節(jié)和地址字節(jié)之異或值。
l 主站命令幀結(jié)構(gòu)
從站地址 從站地址補(bǔ)碼 控制字節(jié) 命令字節(jié) fcs
l 從站應(yīng)答幀結(jié)構(gòu)
從站地址 從站地址補(bǔ)碼 控制字節(jié) 應(yīng)答字節(jié) fcs
4 通訊口初始化
plc內(nèi)部特殊存儲(chǔ)器位smb30和smb130分別配置通訊端口0和1,,為自由端口通訊選擇波特率,、奇偶校驗(yàn)和數(shù)據(jù)位數(shù)。自由端口的控制字節(jié)描述如表1所示,。
例如:在通訊協(xié)議中規(guī)定奇偶校驗(yàn)為奇校驗(yàn),、每個(gè)字符的數(shù)據(jù)為8位、波特率為19200,、自由口協(xié)議,,采用通訊端口0,則在plc初始化程序中將smb30賦值為0c5h,。
例://串口初始化

network 7
ld sm0.0
movb 16#c5, smb30 //波特率為19200奇校驗(yàn) //1起始位1停止位8數(shù)據(jù)位
eni //允許中斷
movb 2, smb34
movb 20, smb35
atch int_0, 8

5 plc實(shí)時(shí)數(shù)據(jù)處理
由于s7-200系列plc在自由口模式下,,通訊協(xié)議完全由梯形圖程序或stl編輯器控制,程序可以使用接收中斷,、發(fā)送中斷,、發(fā)送指令和接收指令來(lái)控制通訊操作。cpu連續(xù)掃描用戶(hù)程序,,執(zhí)行用戶(hù)任務(wù),。plc在程序執(zhí)行過(guò)程中,基于穩(wěn)定,、快速靈活等方面考慮,,cpu每個(gè)掃描周期都通過(guò)輸入輸出映像寄存器來(lái)執(zhí)行實(shí)際輸入輸出操作,即讀實(shí)際輸入點(diǎn)值到映像寄存器,、寫(xiě)映像寄存器值到實(shí)際輸出點(diǎn),。由于在中斷中不能順利進(jìn)行數(shù)據(jù)讀寫(xiě)操作,因此,,可通過(guò)編程,,利用plc循環(huán)掃描執(zhí)行程序的特點(diǎn),使得在程序掃描期間實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)區(qū)與輸入輸出映像寄存器區(qū)交換數(shù)據(jù),。
在本實(shí)例中,,plc上電初始化后轉(zhuǎn)入接收字符中斷,,當(dāng)上位機(jī)發(fā)出查詢(xún)命令后,plc判斷所發(fā)命令的地址和地址補(bǔ)碼是否正確;如果正確判斷上位機(jī)是向plc發(fā)送命令還是查詢(xún)plc狀態(tài);如果執(zhí)行命令則plc轉(zhuǎn)入主程序執(zhí)行相關(guān)命令,,如果查詢(xún)plc狀態(tài)則將協(xié)議定義的信息發(fā)送給上位機(jī),,上位機(jī)收到信息后發(fā)送應(yīng)答幀給plc。


例:interrupt0 //接收開(kāi)始
network 1
ldn sm3.0
ab= smb2, vb0
movw +0, ac0
movd &vb600, vd638
movb smb2, *vd638
xorw smw1, ac0
movb ac0, vb300
atch int_1, 8
atch int_6, 11
creti
network 2
ld sm0.0
dtch 8
atch int_6, 10
interrupt1 //接收地址補(bǔ)碼
network 1
ldn sm3.0
an sm1.0
movb smb2, *vd638
xorw smw1, ac0
network 2
ld sm0.0
atch int_6, 10
interrupt2 //接收命令后判斷

network 3 //發(fā)送信息
ldw= ac2, +0
ab= vb301, vb604
ab= vb603, 16#00
atch int_4, 10
dtch 11
creti
network 4
ld sm0.0
wdr

network 7
ld sm0.0
s m31.0, 1
dtch 11
atch int_5, 10
interrupt3 //接收應(yīng)答字節(jié)
network 1
ldn sm3.0
an sm1.0
movb smb2, *vd638
incd vd638
xorw smw1, ac0
decw ac2
network 2
ldw= ac2, 16#0000
movw ac0, vw300
network 3
ld sm0.0
dtch 8
atch int_6, 10
interrupt4 //發(fā)送信息碼

network 6
ld sm0.0
movw ac0, vw105
xmt vb100, 0
atch int_6, 9

interrupt5 //發(fā)送應(yīng)答幟

network 9
ld sm0.0
movw ac0, vw105
xmt vb100, 0
r m31.0, 1
atch int_6, 9

interrupt6 //轉(zhuǎn)入接受中斷
network 1
ld sm0.0
dtch 9
dtch 10
dtch 11
atch int_0, 8
6 計(jì)算機(jī)實(shí)時(shí)數(shù)據(jù)處理
計(jì)算機(jī)程序由車(chē)輛級(jí)網(wǎng)絡(luò)供應(yīng)商提供,,根據(jù)雙方制定的通訊協(xié)議,,通常采用vb或vc編寫(xiě),在此不做詳細(xì)描述,。
7 結(jié)束語(yǔ)
從以上敘述可以看到,,由車(chē)輛計(jì)算機(jī)與plc(或其它智能可編程設(shè)備)組建的車(chē)輛級(jí)實(shí)時(shí)監(jiān)控系統(tǒng)關(guān)鍵在于解決計(jì)算機(jī)與plc的實(shí)時(shí)通訊、plc對(duì)車(chē)上設(shè)備狀態(tài)實(shí)時(shí)監(jiān)控的問(wèn)題,。通過(guò)這種方式組建的車(chē)輛實(shí)時(shí)監(jiān)控系統(tǒng),,只是在原有的設(shè)備控制器軟件內(nèi)增加了通訊程序,所以并沒(méi)有增加設(shè)備供應(yīng)商的成本,,因此這種監(jiān)控系統(tǒng)的開(kāi)發(fā)成本低,,而且實(shí)時(shí)性好、操作簡(jiǎn)單,、通用性強(qiáng),。再利用計(jì)算機(jī)易組網(wǎng)的功能,,實(shí)現(xiàn)了整列車(chē)的實(shí)時(shí)監(jiān)控,,大大提供了列車(chē)行駛中的可靠性和安全性,因此這種網(wǎng)絡(luò)系統(tǒng)在旅客列車(chē),、特別是高速列車(chē)上已普遍使用,。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。