您現在的位置:深圳市西林電氣技術有限公司 > 解決方案 > 其他行業

西林變頻器與西門子S7-200PLC通信

時間:2012-12-28 點擊數:6468次
一、功能介紹
     西林變頻器內置標記國際標準的MODBUS(從站)通信協議,配合西林變頻器專用通訊卡,可非常方便的實現遠程通訊控制功能。
     下面以西門子S7-200為例,介紹PLC與西林變頻器建立通訊并實現對變頻器的各種控制。
     變頻器作為MODBUS協議從站接收來子PLC的通信指令。
     西林變頻器與S7-200 PLC通信前應做好以下準備:
     1、確認已安裝好西林變頻器專用通訊卡。
     2、用一根帶九針陽性插頭的串口通信電纜連接在PLC的自由通訊端口,電纜另一端的第3、8線分別接在西林變頻器RS485通訊卡的485+、485-端子上,其余線屏蔽不用。
     3、預先設置變頻器以下參數:
          F0.02=3                    //變頻器的運行指令采用通訊方式
          F0.03=8                    //變頻器的主頻率設定采用通訊方式
          FC.00=3                    //設定通訊波特率
          FC.01=00                   //選擇數據校驗方式及字節校驗方式
          FC.02=1                    //設定變頻器的通訊地址

圖1

 

二、PLC內存使用說明
     西門子S7-200系列PLC的自由通訊端口編程必定會用到兩個指令,即XMT(發送)指令和RCV(接收)指令。編寫程序時需要為這兩個指令指定數據緩沖區,一般以最低位數為0的地址作為數據緩沖區的起始地址。
     1.發送指令XMT緩沖區(寫/讀)
         VB100       //xmt指令要發送的字節個數
         VB101       //變頻器通訊地址(01)
         VB102       //modbus功能碼(06/03)
         VB103       //變頻器被寫地址高位/變頻器被讀起始地址高位
         VB104       //變頻器被寫地址低位/變頻器被讀起始地址低位
         VB105       //被寫數據高位/被讀數據字個數高位
         VB106       //被寫數據低位/被讀數據字個數低位
         VB107       //被發送數據CRC低位
         VB108       //被發送數據CRC高位
 
     2.接收指令RCV緩沖區
         VB200       //rcv指令要接收的字節個數
         VB201       //變頻器地址(01)
         VB202       //modbus功能碼(06/03)
         VB203       //變頻器被寫地址高位/被讀數據字節個數高位
         VB204       //變頻器被寫地址低位/被讀數據字節個數低位
         VB205       //被寫數據高位/被讀數據高位
         VB206       //被寫數據低位/被讀數據低位
         VB207       //被接收數據CRC低位
         VB208       //被接收數據CRC高位
         VB217       //被接收數據CRC驗算低位
         VB218       //被接收數據CRC驗算高位
 
     3.CRC校驗子程序(SBR0)
     西林變頻器內置的MODBUS協議采用RTU傳輸格式,該格式使用CRC校驗方式對每次發出或接收的數據幀進行校驗。因此,該子程序使用了多個局部變量,以方便其它子程序調用。在西門子STEP 7-Micro/Win 編程環境下(如圖2),需要在該子程序的局部變量表中預先設定以下局部變量:

       圖2

         Network 1
         LD     SM0.0
         MOVW   16#FFFF, LW6                //將16位CRC校驗寄存器LW6全置為1
         Network 2
         LD     SM0.0
         FOR    LW8, +1, LW4                //對待發送數據字節個數(LW4)計數(LW8)循環
         Network 3
         LD     SM0.0
         XORB   *LD0, LB7                   //使待發送數據的第一個字節(*LD0)與
                                              //CRC校驗寄存器低位字節(LB7)進行異或運算
         Network 4
         LD     SM0.0
         INCD   LD0                         //ld_0指向待發送數據的下一個地址
         Network 5
         LD     SM0.0
         FOR    LW10, +1, +8                //對每字節8位二進制數計數(LW10)循環
         Network 6
         LD     SM0.0
         SRW    LW6, 1                      //CRC校驗寄存器LW6右移一位
         Network 7
         LD     SM1.1                       //若移位后的溢出值SM1.1為1
         XORW   16#A001, LW6                //則使值16#A001與LW6進行異或運算
         Network 8
         NEXT                               //結束每字節8位二進制數計數循環
         Network 9
         NEXT                               //結束每數據幀字節個數計數循環
 
     4.初始化子程序
     該程序在PLC的第一個掃描周期運行,主要是設置PLC自由端口的通信格式、數據接收格式及復位各寄存區(參見西門子S7-200編程手冊)。
     通信格式內容包括:波特率9.6K、每字節位數8位、無校驗等(注意與變頻器一致)。
     數據接收格式完全參照MODBUS RTU格式設定,以不少于3.5個字節傳輸時間的通信口空閑間隔作為數據接收的開始及結束信號。根據協議,PLC在準備接收數據前會先監測通信口是否空閑,如連續空閑時間超過了3.5個字節的傳輸時間,則PLC默認數據接收開始,此后通訊口上出現的信息即被認為是一個數據幀的內容。同理,隨著一個數據幀的最后一個字節傳輸完成,又會出現一個3.5字節傳輸時間的空閑間隔,來表示一個數據幀傳輸的結束。
     對9.6K的通信波特率來說,3.5個字節傳輸時間約為5ms左右。因該程式的每個指令只準備接收一個數據幀的回饋信息,所以接收數據前的空閑檢測時間可設為0,即PLC在發出數據后立即開始接收數據,但一個數據幀的傳輸結束空閑檢測時間仍需設為5ms以上。
 
         Network 1
         LD     SM0.0
         MOVB   16#09, SMB30                //設置自由通信口格式
         MOVW   +0, SMW90                   //空閑行間隔檢測時間0ms
         MOVW   +5, SMW92                   //字符間定時器超時檢測時間5ms
         MOVB   20, SMB94                   //接收信息的最大緩沖區20字節
         MOVB   148, SMB87                  //設置自由通信口的數據接收格式
         FILL   +0, QW0, 1                  //輸出印象寄存區復位
         FILL   +0, MW0, 1                  //標志寄存區復位
         FILL   +0, VW100, 5                //發送緩沖區復位
         FILL   +0, VW200, 5                //接收緩沖區復位
         ATCH   INT_0, 23                   //接收完成中斷
         ATCH   INT_1, 9                    //發送完成中斷
         ENI
上一個:西林變頻器在石材切割行業的應用 下一個:西林變頻器在中央空調上的應用
鄭州三維動畫設計制作公司-房地產建筑動畫-工程機械動畫-產品展示動畫 u购彩彩票