<li id="8g3ty"><tbody id="8g3ty"><th id="8g3ty"></th></tbody></li>
    <label id="8g3ty"><samp id="8g3ty"></samp></label>
  • <span id="8g3ty"></span>

    1. <center id="8g3ty"><optgroup id="8g3ty"></optgroup></center>
    2. <bdo id="8g3ty"><meter id="8g3ty"><bdo id="8g3ty"></bdo></meter></bdo><center id="8g3ty"><optgroup id="8g3ty"></optgroup></center>
      <label id="8g3ty"><samp id="8g3ty"></samp></label>

    3. 電子開發網

      電子開發網電子設計 | 電子開發網Rss 2.0 會員中心 會員注冊
      搜索: 您現在的位置: 電子開發網 >> 電子開發 >> 組態王KingView >> 正文

      組態王KingView 實測:西門子200PLC和組態王自由口通信

      作者:佚名    文章來源:網絡    點擊數:    更新時間:2024/8/17

      這幾天測試西門子200PLC和組態王自由口方式進行通信。

      因為以前沒做過這方面的通信,組態王也只熟悉一點,所以網上找點資料看看。

      原以為很簡單的通信,感覺就是觸摸屏和PLC通信那樣,簡單配置一下參數:地址、波特率等。

      現在看來還真是差不多,只是要看的資料很多,結合起來看,弄清楚兩者之間的通信協議。

      明白之后就很簡單。

      整理下測試程序和大家分享下,歡迎指導,學習,分享。


      (1)下圖是西門子200PLC編程軟件STEP7的通信端口設置:和組態王里面設置要一致;

      STEP7中設置plc的參數 


      (2)下圖是PLC編程 STEP7,需要下載亞控的一個初始化程序。

       


         測試程序如下:

       


         測試地址如下:

       


      (3)下圖是組態王KingView操作:

      組態王KingView設備配置向導 


          和PLC中的一致:

      組態王KingView設置串口 


         數據詞典的操作

       


          定義變量:

       


        測試畫面制作:

       



      (4)下圖是兩者通信的截圖:

       



       


      (5)總結

      組態王和200PLC之間協議

      選取其中一點,這個沒怎么看懂,歡迎大家指導。

      上位機發送讀指令:

      BYTE1: PLC地址 (1~255)

      BYTE2: 0x00 (讀指令代碼)

      BYTE3: 寄存器類型(0-V, 1-Q, 2-I)

      BYTE4-5: 起始偏移地址(0-9999)

      BYTE6: 數據個數(1~32 n)

      BYTE7: 數據類型(1,2,4 m)

      BYTE8-11: 保留

      BYTE12: 校驗字節

      PLC應答:

      讀成功時:

      BYTE1: PLC地址 (1~255)

      BYTE2: 0x00 (讀指令代碼)

      BYTE3: 寄存器類型(0-V, 1-Q, 2-I)

      BYTE4-5: 起始偏移地址(0-9999)

      BYTE6: 數據個數(1~32 n)

      BYTE7: 數據類型(1,2,4 m)

      BYTE8-n*m+8: 數據

      BYTEn*m+9: 校驗字節



      MAIN

      LD     SM0.1

      CALL   SBR_0:SBR0                  //初始化子程序

      LD     SM0.7

      =      SM30.0

      SBR_0:初始化子程序SUBROUTINE COMMENTS Press F1 for help and example program

      LD     SM0.0

      MOVW   +2, VW8                     //PLC自由口地址,此處每臺機器需設不同的地址

      LD     SM0.0

      MOVB   9, SMB30                    //通訊參數,波特率9600,自由口通訊

      MOVD   &VB100, VD40// VB100:接收緩沖區的首字節

      MOVW   +10, VW54// VW54:存放發送數據按字節異或校驗的次數,10次校驗完已//接收了11個字節了,最后一個12號字節是校驗。

      MOVB   12, VB150

      MOVB   VB9, VB151// VB151賦以本機地址

      MOVD   &VB151, VD60// 發送首地址VD60賦以地址

      MOVB   6, SMB34

      ATCH   INT_0:INT0, 10

      ATCH   INT_1:INT1, 8

      ENI

      INT_0://用作初始化幾個參數。每次接受新一幀數據前調用,完了就進入INT_2(接受地址,//并判斷,)

      LD     SM0.0

      DTCH   10

      MOVD   VD40, VD46//初始化 VD46為VD40

      MOVW   +10, VW44//初始化異或校驗的次數

      MOVW   +10, VW54//初始化異或校驗的次數

      ATCH   INT_2:INT2, 8               //接受中斷起用服務程序INT2

      INT_1://延時轉向INT0//網絡正常時這里應該很少調用

      LD     SM0.0

      MOVB   5, SMB34

      ATCH   INT_0:INT0, 10

      INT_2:接受地址,并判斷

      LDB=   SMB2, VB9                   //地址和本機相符

      MOVW   VW8, AC0// AC0這時存入的是本機地址

      MOVB   255, SMB34//255MS的長延時監控,如超過將做異常處理回到初始化重新再來接//收,要知道傳送一個字節是毫秒級的。就是200字節左右看做異常

      ATCH   INT_3:INT3, 8               //起用中斷服務INT3,接受包

      ATCH   INT_5:INT5, 10              //起用延時監控服務INT5

      CRETI

      LDB=   SMB2, VB9                   //地址和本機不符

      NOT

      ATCH   INT_0:INT0, 10              //返回中斷入口

      ATCH   INT_1:INT1, 8

      INT_3://主接受服務程序,同時做異或校驗

      LD     SM0.0

      XORW   SMW1, AC0// AC0上次已存入本機地址,這次做第一次異或,記住異或的次數

      MOVB   SMB2, *VD46// 指針VD46這時指向VB100,即將讀寫代碼存入VB100

      INCD   VD46//指針VD46指向VB101

      DECW   VW44//異或的次數VW44-1=10-1=9

      LD     SM1.0                       //完成預定的接受字節數//10次異或完就接收11

      //個字節,一楨是12個字節,第12字節是校驗位,

      ATCH   INT_4:INT4, 8               //起用通訊數據處理主程序//第12字節交INT4比較//處理

      INT4://通訊數據處理主服務程序

      LD     SM0.0

      BMB    VB100, VB152, 6//接受報頭拷貝到發送報頭// VB100存讀寫代碼,VB151賦以本

      //機地址,VB152存讀寫代碼

      LD     SM0.0

      DTCH   8                           //暫停響應接受中斷

      INCD   VD46// VD46這時指向VB111,

      MOVB   SMB2, *VD46//校驗位存入*VD46即VB111

      XORW   SMW1, AC0// AC0是前11個字節的異或

      ANDW   16#FF, AC0                  //檢查異或校驗

      LDN    SM1.0                       //異或校驗錯誤

      MOVB   VB100, AC0// VB100存讀寫代碼

      MOVB   16#80, AC1

      ORW    AC0, AC1//這步運算,如讀AC1=0X80,如寫AC1=0X81

      MOVB   AC1, VB152// VB152存入發送幀的BYTE2,VB151是BYTE1:本機地址

      MOVB   16#1, VB158// VB158:BYTE8: 0x01(校驗錯代碼)

      MOVW   +10, VW54//10次異或的次數

      JMP    3                           //校驗錯誤,向PC返回錯誤碼

      LD     SM1.0                       //異或正確//兩數相同異或結果=0,很好理解

      MOVW   +4, VW34

      ATCH   INT_8:INT8, 8               //起用服務程序INT8響應接受中斷,接受包尾

      LD     SM0.0                       //數據處理

      Tags:組態王,自由口通信,200PLC  
      責任編輯:admin
    4. 上一篇文章:
    5. 下一篇文章: 沒有了
    6. 請文明參與討論,禁止漫罵攻擊,不要惡意評論、違禁詞語。 昵稱:
      1分 2分 3分 4分 5分

      還可以輸入 200 個字
      [ 查看全部 ] 網友評論
      關于我們 - 聯系我們 - 廣告服務 - 友情鏈接 - 網站地圖 - 版權聲明 - 在線幫助 - 文章列表
      返回頂部
      刷新頁面
      下到頁底
      晶體管查詢
      主站蜘蛛池模板: 久久精品国产91久久综合麻豆自制| 久久综合久综合久久鬼色| 欧洲 亚洲 国产图片综合| 亚洲国产综合人成综合网站00| 伊人色综合一区二区三区| 小说区 图片区色 综合区| 国产综合精品久久亚洲 | 久久综合中文字幕| 狠狠色综合网久久久久久| 亚洲色欲久久久综合网| 大香网伊人久久综合观看| 色综合色综合色综合色欲| 久久亚洲欧洲国产综合| 色综久久天天综合绕视看| 亚洲明星合成图综合区在线| 国产激情电影综合在线看 | 狠狠色噜噜狠狠狠狠狠色综合久久 | 久久综合久久综合亚洲| 国产成人综合亚洲AV第一页| 亚洲日韩在线中文字幕综合| 色久综合网精品一区二区| 伊人久久大香线蕉综合电影网| 国产综合在线观看视频| 日韩字幕一中文在线综合| 激情综合丁香五月| 国产精品亚洲综合五月天| 亚洲欧洲日产国产综合网| 久久久久青草线蕉综合超碰| 亚洲伊人tv综合网色| 色综合久久久久无码专区| 久久综合久综合久久鬼色| 国产成人精品综合网站| 图片区精品综合自拍| 伊人伊成久久人综合网777| 色综合天天色综合| 狠狠综合久久AV一区二区三区| 伊人久久中文大香线蕉综合| 狠狠色丁香婷婷综合激情| 久久精品桃花综合| 91精品国产综合久久精品| 亚洲成AV人综合在线观看|