plcs
級別: *
精華主題: * 篇
發(fā)帖數(shù)量: * 個
工控威望: * 點
下載積分: * 分
在線時間: (小時)
注冊時間: *
最后登錄: *
查看plcs的 主題 / 回貼
樓主  發(fā)表于: 2011-09-28 21:58
1  引言
        變頻器與plc配套應用是常見的自動化集成系統(tǒng)。由plc發(fā)出啟動、停止、運行頻率等指令,來控制變頻器的運轉及頻率輸出,達到控制生產過程自動化目的;诖型ㄓ嵉淖冾l器與plc集成技術具有的優(yōu)點得到廣泛的工程重視。本文介紹三菱變頻器三菱變頻器f700與西門子plc s7-200在自由口模式下的串行通信,達到plc對變頻器的便捷控制。
2  變頻器與PLC的連接
        plc s7-200與三菱變頻器通信采用rs485接口的串行方式。s7-200側為九針接口,三菱變頻器為rs485端子,采用二線式連接,電纜接線如附圖所示。


附圖  plc與變頻器連接
3  通訊系統(tǒng)設計
3.1 plc的自由口通信模式
        s7-200支持自由口通信模式。自由口模式使s7-200可以與許多通信協(xié)議公開的其他設備和控制器進行通信。波特率為1200~115200 b/s(可調整)。
        自由口模式的數(shù)據(jù)字節(jié)格式總是有一個起始位、一個停止位,用戶可以選擇7位或者8位數(shù)據(jù),也可以選擇是否有校驗位以及是奇校驗還是偶校驗。
        在自由口模式下,通過使用發(fā)送中斷、接收中斷、發(fā)送指令(xmt)和接收指令(rcv),為所有通信活動編程。在自由口模式下,通信協(xié)議完全由用戶程序控制。
3.2 三菱變頻器專用協(xié)議
        在自由口模式下,plc與變頻器通信遵循三菱變頻器專用協(xié)議。首先,按照變頻器通訊規(guī)格對變頻器參數(shù)進行設置(具體參照變頻器手冊)。其次通信采用以下步驟:
        向變頻器發(fā)送要求數(shù)據(jù)(變頻器不會自動發(fā)送數(shù)據(jù)),經變頻器等待時間后,從變頻器向plc發(fā)送返回數(shù)據(jù),等待變頻器處理事件后,進行再處理。plc與變頻器通信以ascii碼(16進制)進行。plc對變頻器進行運行狀態(tài)監(jiān)控、運行頻率設置、啟動、停止等操作。這些數(shù)據(jù)的收發(fā)采用不同的數(shù)據(jù)模式。如運行頻率采用附表所示數(shù)據(jù)模式。


        附表中,enq為控制符,實際發(fā)送16進制數(shù)據(jù)05,其余皆為ascii碼表示。變頻器站號范圍為0~31,指令代碼在變頻器手冊中給出,如運行頻率寫入為‘ee’。不同運行指令有不同數(shù)據(jù)。求和校驗求法如下:將從“站號”到“數(shù)據(jù)”的ascii碼按16進制加法求總和,再對和的低兩位進行ascii編碼。字符數(shù)13是結束字符可以是cr或lf。
4  自由口通信編程設計
        下面用實例來介紹自由口模式下的通信,plc向變頻器發(fā)送20hz頻率。(要使頻率寫入有效,開始時plc先向變頻器發(fā)送“寫入”指令,命令代碼‘fb’。)
        主程序:
        網絡1:
        ld  sm0.1 //初始化
        movb 16#09, smb130  //端口1自由口模式,波特率9600,每個字符8位,無校驗
        movb 16#b0, smb187 //寫接收指令控制字,允許rcv,檢測信息結束字符、空閑線起始條件
        movb 16#0d, smb189 //設置信息結束字符為16#0d(回車符)
        movw +5, smw190 //設置空閑線檢測時間間隔為5ms
        movb 100, smb194 //設置最大字符數(shù)為100
        網絡2:
        ld     sm0.0
        movb 16#0d, vb100 //發(fā)送數(shù)據(jù)字符數(shù)為13
        movb 16#05, vb101 //通訊要求
        movb 16#30, vb102 //變頻器站號01
        movb 16#31, vb103 
        movb 16#44, vb104 //頻率寫入命令代碼
        movb 16#44, vb105
        movb 16#31, vb106 //等待時間1×10ms
        movb 16#32, vb107 //發(fā)送頻率20hz
        movb 16#30, vb108
        movb 16#30, vb109
        movb 16#30, vb110
        movb 16#44, vb111 //求和校驗碼de
        movb 16#45, vb112
        movb 16#0d, vb113 //結束字符
        movb 0, mb10
        網絡3:
        ld sm0.0
        atch int_0:int0, 26 //端口1發(fā)送完中斷,連接到中斷0
        atch int_2:int2, 24 //端口1接收完中斷,連接到中斷2
        eni  //允許中斷
        網絡4:
        ld sm0.0
        r sm187.7, 1 //禁止接收(避免接收發(fā)送沖突)
        rcv vb149, 1
        xmt vb100, 1  //開始發(fā)送
        中斷程序0:
        網絡1:
        ld sm0.0
        movb 5, smb35
        atch int_1:int1, 11 //定時中斷到中斷1
        中斷程序1:
        網絡1:
        ld sm0.0
        dtch 11
        s sm187.7, 1 //允許接收
        rcv vb149, 1 //開始接收
        中斷程序2:
        網絡1:
        ld sm0.0
        incb mb10 //每發(fā)送接收完一次mb10加1
        ab= mb10, 3               //當超過3次,退出不再發(fā)送
        creti
        網絡2:
        ldb= smb186, 16#20 //接收無誤條件下
        ab=  vb150, 16#06  //接收數(shù)據(jù)無錯誤,退出
        creti
        not  //否則,再發(fā)送
        r sm187.7, 1
        rcv vb149, 1
        xmt vb100, 1
5  結束語
        變頻器與plc在自由口模式下通信,具有很大的靈活性,方便了工程應用。筆者在實際項目中進行了運用,以上方法成功通過,并收到較好的效果。
本帖最近評分記錄:
  • 下載積分:+5(xqx666) 太感謝你的思路了!
    liuliangdt
    liuliangdt
    級別: 家園?
    精華主題: 0
    發(fā)帖數(shù)量: 447 個
    工控威望: 681 點
    下載積分: 66146 分
    在線時間: 988(小時)
    注冊時間: 2010-09-05
    最后登錄: 2024-10-29
    查看liuliangdt的 主題 / 回貼
    1樓  發(fā)表于: 2011-09-28 22:12
    小弟不會,先學習。等以后會了小弟也來發(fā)表一篇這樣的文章。
    luozhiguo200
    級別: 工控俠客
    精華主題: 0
    發(fā)帖數(shù)量: 207 個
    工控威望: 2839 點
    下載積分: 2919 分
    在線時間: 142(小時)
    注冊時間: 2012-01-10
    最后登錄: 2024-10-05
    查看luozhiguo200的 主題 / 回貼
    2樓  發(fā)表于: 2012-02-09 09:54
    路過 學習一下
    tcw
    級別: 略有小成
    精華主題: 0
    發(fā)帖數(shù)量: 137 個
    工控威望: 275 點
    下載積分: 2870 分
    在線時間: 48(小時)
    注冊時間: 2011-09-24
    最后登錄: 2021-06-09
    查看tcw的 主題 / 回貼
    3樓  發(fā)表于: 2012-02-09 11:43
    小弟不會,先學習。