可編程控制器與工業(yè)計算機通訊的應用
引言
本文引用地址:http://dyxdggzs.com/article/163690.htm可編程控制器(plc)由于其結構緊湊、可靠性高、編程簡(jiǎn)單、指令強大、靈活性強、能適用于比較惡劣環(huán)境等諸多優(yōu)點(diǎn),現已在工業(yè)控制領(lǐng)域得到廣泛應用?,F普遍采用觸摸屏加plc的方法來(lái)監控設備,但觸摸屏視角窄,不適應惡劣環(huán)境,且數據存儲容量有限,不易實(shí)現大規模網(wǎng)絡(luò )互聯(lián)。因此我們采用plc與計算機通訊的方式實(shí)現實(shí)時(shí)監控,克服了觸摸屏的缺點(diǎn)。
世界知名品牌的plc很多,如西門(mén)子、歐姆龍、松下、三菱等等,本人僅以西門(mén)子s7-200小型可編程控制器的cpu22×系列為例,介紹plc在計算機網(wǎng)絡(luò )中與計算機通訊的功能。
s7-200 cpu支持多樣的通訊功能,根據所使用的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í)現用戶(hù)定義的通訊協(xié)議連接多種智能設備。通過(guò)使用接收中斷、發(fā)送中斷、發(fā)送指令和接收指令,用戶(hù)程序控制通訊口操作。在自由口通訊模式下,通訊協(xié)議完全由用戶(hù)程序控制。通過(guò)smb30(口0)允許自由口模式,而且只有在cpu處于run模式時(shí)才能允許。當cpu出于stop模式時(shí),自由口通訊停止,通訊口轉換成正常的ppi協(xié)議操作。
近年來(lái),隨著(zhù)我國鐵路運輸環(huán)境的改善,列車(chē)速度越來(lái)越高,勢必對鐵道車(chē)輛提出較高的要求,其表現在對列車(chē)的舒適性和運行可靠性、安全性的要求提高,因此車(chē)輛上設備的自動(dòng)化程度越來(lái)越高。自動(dòng)化程度的提高,帶動(dòng)了網(wǎng)絡(luò )技術(shù)在列車(chē)控制和監控上的應用。車(chē)輛網(wǎng)絡(luò )控制、監控簡(jiǎn)圖如圖1所示。
整列車(chē)設有車(chē)輛級計算機,每個(gè)車(chē)廂設有本車(chē)計算機,車(chē)輛級計算機與各個(gè)本車(chē)計算機組成車(chē)輛的主網(wǎng),本車(chē)計算機與本車(chē)廂內的各個(gè)設備間組成子網(wǎng)。plc由于其自身的優(yōu)點(diǎn),作為控制核心在車(chē)輛上的多種設備中得以應用,例如列車(chē)自動(dòng)門(mén)的控制、列車(chē)空調機的控制等,使其可以作為整個(gè)列車(chē)網(wǎng)絡(luò )系統中的一個(gè)節點(diǎn)。
3 通訊協(xié)議
siemens s7-200系列plc可以采用用戶(hù)定義通訊協(xié)議(自由口)模式實(shí)現計算機與plc、plc與plc的通訊。筆者所描述的例子中,雖然車(chē)輛計算機系統和車(chē)輛上的其它設備分別是多個(gè)設備供應商的產(chǎn)品,但是只要制定好通訊協(xié)議,就能滿(mǎn)足相互通訊的要求。s7-200系列的plc正是由于其自由口通訊是通過(guò)用戶(hù)程序控制cpu串行通訊口的操作模式,所以可以方便地與車(chē)輛計算機通訊。
計算機(主站)每隔100ms查詢(xún)plc(從站)一次,主站發(fā)出從站動(dòng)作控制命令給從站,從站收到命令后發(fā)給主站應答幀,從站接收到主站發(fā)送來(lái)的一幀數據,計算出其校驗碼fcs,與接收到的一幀數據中的fcs比較,檢查是否有數據錯誤。如果有數據有誤,從站發(fā)送信息給主站,請求重發(fā)。
l 字符結構:每個(gè)字符由11位構成,奇偶校驗位采用奇校驗方式。
起始位 數據 奇偶校驗位 停止位
1位 8位 d7…d0 1位 1位
l 傳輸數據幀格式
byte(0)…byte(n) fcs
byte(0)…byte(n)為字符串;
fcs為異或校驗碼,是發(fā)送的所有數據字節和地址字節之異或值。
l 主站命令幀結構
從站地址 從站地址補碼 控制字節 命令字節 fcs
l 從站應答幀結構
從站地址 從站地址補碼 控制字節 應答字節 fcs
4 通訊口初始化
plc內部特殊存儲器位smb30和smb130分別配置通訊端口0和1,為自由端口通訊選擇波特率、奇偶校驗和數據位數。自由端口的控制字節描述如表1所示。
例如:在通訊協(xié)議中規定奇偶校驗為奇校驗、每個(gè)字符的數據為8位、波特率為19200、自由口協(xié)議,采用通訊端口0,則在plc初始化程序中將smb30賦值為0c5h。
例://串口初始化
┋
network 7
ld sm0.0
movb 16#c5, smb30 //波特率為19200奇校驗 //1起始位1停止位8數據位
eni //允許中斷
movb 2, smb34
movb 20, smb35
atch int_0, 8
┋
5 plc實(shí)時(shí)數據處理
由于s7-200系列plc在自由口模式下,通訊協(xié)議完全由梯形圖程序或stl編輯器控制,程序可以使用接收中斷、發(fā)送中斷、發(fā)送指令和接收指令來(lái)控制通訊操作。cpu連續掃描用戶(hù)程序,執行用戶(hù)任務(wù)。plc在程序執行過(guò)程中,基于穩定、快速靈活等方面考慮,cpu每個(gè)掃描周期都通過(guò)輸入輸出映像寄存器來(lái)執行實(shí)際輸入輸出操作,即讀實(shí)際輸入點(diǎn)值到映像寄存器、寫(xiě)映像寄存器值到實(shí)際輸出點(diǎn)。由于在中斷中不能順利進(jìn)行數據讀寫(xiě)操作,因此,可通過(guò)編程,利用plc循環(huán)掃描執行程序的特點(diǎn),使得在程序掃描期間實(shí)現數據存儲區與輸入輸出映像寄存器區交換數據。
在本實(shí)例中,plc上電初始化后轉入接收字符中斷,當上位機發(fā)出查詢(xún)命令后,plc判斷所發(fā)命令的地址和地址補碼是否正確;如果正確判斷上位機是向plc發(fā)送命令還是查詢(xún)plc狀態(tài);如果執行命令則plc轉入主程序執行相關(guān)命令,如果查詢(xún)plc狀態(tài)則將協(xié)議定義的信息發(fā)送給上位機,上位機收到信息后發(fā)送應答幀給plc。
評論