新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 一種S7-300與S7-200自由口無線通信實現方法

        一種S7-300與S7-200自由口無線通信實現方法

        作者: 時間:2016-12-16 來源:網絡 收藏

          S7-300通信程序詳細介紹
          AN M 30.0
          L S5T#2S
          SD T 1
          A M 30.0
          R T 1
          L T 1
          T MW 40
          NOP 0
          A T 1
          = M 30.0
          //設一2秒定時器,定時時間到自動進行下一次定時,當前值存入MW40
          A(
          L MW 40
          L 102
          》I
         ?。?br />  A(
          L MW40
          L 200
          《I
          )
          = M30.1
          // 定時器第一秒鐘內,即102《MW40《200,M30.1為1
          A(
          L MW 40
          L 2
          》I
          )
          A(
          L MW 40
          L 100
          《I
          )
          = M 30.2
          //定時器第二秒鐘內M30.2為1
          A (
          A M 30.1
          JNB _001
          L 0
          T MW 34
          SET
          SAVE
          CLR
          _001: A BR
          )
          JNB _002
          L 0
          T MW 36
          _002: NOP 0
          // M30.1為1時,即定時器第一秒內,使MW34=0、MW36=0,作為起始字節值
          A (
          A M 30.2
          JNB _003
          L 8
          T MW 34
          SET
          SAVE
          CLR
          _003: A BR
         ?。?br />  JNB _004
          L 8
          T MW 36
          _004: NOP 0
          // M30.2為1時,即定時器第二秒內,使MW34=8、MW36=8,作為起始字節值
          O M 30.1
          O M 30.2
          = M 33.0
          A M 33.0
          = L 20.0
          BLD 103
          CALL “P_SEND” , DB19
          REQ :=L20.0
          R :=
          LADDR :=320
          DB_NO :=2
          DBB_NO:=MW34
          LEN :=7
          DONE :=M50.1
          ERROR :=M50.2
          STATUS:=MW52
          NOP 0
          // 調用發送指令,當M30.1為1時(其上升沿初始化發送請求),即定時器第一秒內發送DB2.DBB0起始的7個字節,第一個字節為1站地址;當M30.2為1時(其上升沿初始化發送請求),即定時器第2秒內發送DB2.DBB8起始的7個字節,第一個字節為2站地址
          A M 33.0
          = L 20.0
          BLD 103
          CALL “P_RCV” , DB20
          EN_R :=L20.0
          R :=
          LADDR :=320
          DB_NO :=22
          DBB_NO:=MW36
          NDR :=M60.1
          ERROR :=M60.2
          LEN :=MW62
          STATUS:=MW64
          NOP 0
          // 調用接收指令,當M30.1為1時(允許讀數據),即定時器第一秒內接收1號S7-200站回傳的6字節數據,存入DB22數據塊中,起始字節為DB22.DBB0;當M30.2為1時,即定時器第2秒內接收2號S7-200站回傳的6字節數據,存入DB22數據塊中,起始字節為DB22.DBB8
          3.2 S7-200端通信程序
          S7-200 PLC程序分為主程序、子程序和中斷程序,主程序完成控制和子程序調用功能,子程序完成通信口初始化功能,中斷程序完成數據的接收和發送功能。發送數據采用發送指令XMT,接收數據采用逐字節接收方法,通信口接收每個字節都會暫存到特殊存儲器SMB2中,并且產生中斷,利用中斷程序控制數據的接收。由于S7-200CPU的通信是建立在RS-485半雙工通信硬件的基礎上,接收和發送不能同時進行。通信中斷程序要做到:接收指令不結束,就不能執行發送指令。
          反映S7-200CPU工作方式的模式開關當前位置的特殊存儲器位為SM0.7,它控制自由端口模式的進入。當模式開關處于TERM位置時,SM0.7為0;當模式開關處于RUN位置時,SM0.7為1。SMB30是自由口模式控制字節,用來設定校驗方式、通信協議、波特率等通信參數(其各個位含義參閱相關手冊),中斷事件號8為端口0接收字符中斷,中斷事件號9為端口0發送完成中斷。
          當SM0.7為1時,調用子程序SBR_0設置SMB30,允許進行自由口通信;SM0.7為0時,調用子程序SBR_1重新設置SMB30,停止自由口通信,恢復PPI通信,便于用Micro/WIN軟件對CPU運行狀態進行監視。S7-200通信程序流程如圖4

          


          圖4 S7-200通信程序流程圖



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 镇坪县| 吉首市| 白河县| 秦皇岛市| 慈溪市| 台北县| 昭通市| 侯马市| 海城市| 钦州市| 丰镇市| 宁波市| 鹤壁市| 诏安县| 高邑县| 饶阳县| 鄂伦春自治旗| 独山县| 米易县| 沂源县| 九江市| 沁源县| 图片| 德江县| 耿马| 扶绥县| 松原市| 陇南市| 郑州市| 寿阳县| 彭州市| 土默特左旗| 安国市| 南乐县| 天祝| 迁安市| 长兴县| 枣庄市| 乡城县| 基隆市| 阿城市|