plcs
級(jí)別: *
![]() |
1 引言 變頻器與plc配套應(yīng)用是常見(jiàn)的自動(dòng)化集成系統(tǒng)。由plc發(fā)出啟動(dòng)、停止、運(yùn)行頻率等指令,來(lái)控制變頻器的運(yùn)轉(zhuǎn)及頻率輸出,達(dá)到控制生產(chǎn)過(guò)程自動(dòng)化目的。基于串行通訊的變頻器與plc集成技術(shù)具有的優(yōu)點(diǎn)得到廣泛的工程重視。本文介紹三菱變頻器三菱變頻器f700與西門(mén)子plc s7-200在自由口模式下的串行通信,達(dá)到plc對(duì)變頻器的便捷控制。 2 變頻器與PLC的連接 plc s7-200與三菱變頻器通信采用rs485接口的串行方式。s7-200側(cè)為九針接口,三菱變頻器為rs485端子,采用二線(xiàn)式連接,電纜接線(xiàn)如附圖所示。 ![]() 附圖 plc與變頻器連接 3 通訊系統(tǒng)設(shè)計(jì) 3.1 plc的自由口通信模式 s7-200支持自由口通信模式。自由口模式使s7-200可以與許多通信協(xié)議公開(kāi)的其他設(shè)備和控制器進(jìn)行通信。波特率為1200~115200 b/s(可調(diào)整)。 自由口模式的數(shù)據(jù)字節(jié)格式總是有一個(gè)起始位、一個(gè)停止位,用戶(hù)可以選擇7位或者8位數(shù)據(jù),也可以選擇是否有校驗(yàn)位以及是奇校驗(yàn)還是偶校驗(yàn)。 在自由口模式下,通過(guò)使用發(fā)送中斷、接收中斷、發(fā)送指令(xmt)和接收指令(rcv),為所有通信活動(dòng)編程。在自由口模式下,通信協(xié)議完全由用戶(hù)程序控制。 3.2 三菱變頻器專(zhuān)用協(xié)議 在自由口模式下,plc與變頻器通信遵循三菱變頻器專(zhuān)用協(xié)議。首先,按照變頻器通訊規(guī)格對(duì)變頻器參數(shù)進(jìn)行設(shè)置(具體參照變頻器手冊(cè))。其次通信采用以下步驟: 向變頻器發(fā)送要求數(shù)據(jù)(變頻器不會(huì)自動(dòng)發(fā)送數(shù)據(jù)),經(jīng)變頻器等待時(shí)間后,從變頻器向plc發(fā)送返回?cái)?shù)據(jù),等待變頻器處理事件后,進(jìn)行再處理。plc與變頻器通信以ascii碼(16進(jìn)制)進(jìn)行。plc對(duì)變頻器進(jìn)行運(yùn)行狀態(tài)監(jiān)控、運(yùn)行頻率設(shè)置、啟動(dòng)、停止等操作。這些數(shù)據(jù)的收發(fā)采用不同的數(shù)據(jù)模式。如運(yùn)行頻率采用附表所示數(shù)據(jù)模式。 ![]() 附表中,enq為控制符,實(shí)際發(fā)送16進(jìn)制數(shù)據(jù)05,其余皆為ascii碼表示。變頻器站號(hào)范圍為0~31,指令代碼在變頻器手冊(cè)中給出,如運(yùn)行頻率寫(xiě)入為‘ee’。不同運(yùn)行指令有不同數(shù)據(jù)。求和校驗(yàn)求法如下:將從“站號(hào)”到“數(shù)據(jù)”的ascii碼按16進(jìn)制加法求總和,再對(duì)和的低兩位進(jìn)行ascii編碼。字符數(shù)13是結(jié)束字符可以是cr或lf。 4 自由口通信編程設(shè)計(jì) 下面用實(shí)例來(lái)介紹自由口模式下的通信,plc向變頻器發(fā)送20hz頻率。(要使頻率寫(xiě)入有效,開(kāi)始時(shí)plc先向變頻器發(fā)送“寫(xiě)入”指令,命令代碼‘fb’。) 主程序: 網(wǎng)絡(luò)1: ld sm0.1 //初始化 movb 16#09, smb130 //端口1自由口模式,波特率9600,每個(gè)字符8位,無(wú)校驗(yàn) movb 16#b0, smb187 //寫(xiě)接收指令控制字,允許rcv,檢測(cè)信息結(jié)束字符、空閑線(xiàn)起始條件 movb 16#0d, smb189 //設(shè)置信息結(jié)束字符為16#0d(回車(chē)符) movw +5, smw190 //設(shè)置空閑線(xiàn)檢測(cè)時(shí)間間隔為5ms movb 100, smb194 //設(shè)置最大字符數(shù)為100 網(wǎng)絡(luò)2: ld sm0.0 movb 16#0d, vb100 //發(fā)送數(shù)據(jù)字符數(shù)為13 movb 16#05, vb101 //通訊要求 movb 16#30, vb102 //變頻器站號(hào)01 movb 16#31, vb103 movb 16#44, vb104 //頻率寫(xiě)入命令代碼 movb 16#44, vb105 movb 16#31, vb106 //等待時(shí)間1×10ms movb 16#32, vb107 //發(fā)送頻率20hz movb 16#30, vb108 movb 16#30, vb109 movb 16#30, vb110 movb 16#44, vb111 //求和校驗(yàn)碼de movb 16#45, vb112 movb 16#0d, vb113 //結(jié)束字符 movb 0, mb10 網(wǎng)絡(luò)3: ld sm0.0 atch int_0:int0, 26 //端口1發(fā)送完中斷,連接到中斷0 atch int_2:int2, 24 //端口1接收完中斷,連接到中斷2 eni //允許中斷 網(wǎng)絡(luò)4: ld sm0.0 r sm187.7, 1 //禁止接收(避免接收發(fā)送沖突) rcv vb149, 1 xmt vb100, 1 //開(kāi)始發(fā)送 中斷程序0: 網(wǎng)絡(luò)1: ld sm0.0 movb 5, smb35 atch int_1:int1, 11 //定時(shí)中斷到中斷1 中斷程序1: 網(wǎng)絡(luò)1: ld sm0.0 dtch 11 s sm187.7, 1 //允許接收 rcv vb149, 1 //開(kāi)始接收 中斷程序2: 網(wǎng)絡(luò)1: ld sm0.0 incb mb10 //每發(fā)送接收完一次mb10加1 ab= mb10, 3 //當(dāng)超過(guò)3次,退出不再發(fā)送 creti 網(wǎng)絡(luò)2: ldb= smb186, 16#20 //接收無(wú)誤條件下 ab= vb150, 16#06 //接收數(shù)據(jù)無(wú)錯(cuò)誤,退出 creti not //否則,再發(fā)送 r sm187.7, 1 rcv vb149, 1 xmt vb100, 1 5 結(jié)束語(yǔ) 變頻器與plc在自由口模式下通信,具有很大的靈活性,方便了工程應(yīng)用。筆者在實(shí)際項(xiàng)目中進(jìn)行了運(yùn)用,以上方法成功通過(guò),并收到較好的效果。 |
---|---|
本帖最近評(píng)分記錄: |
liuliangdt
liuliangdt
級(jí)別: 家園?
![]() |
小弟不會(huì),先學(xué)習(xí)。等以后會(huì)了小弟也來(lái)發(fā)表一篇這樣的文章。 ![]() |
---|---|
|