新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 一種S7-300與S7-200自由口無線通信實(shí)現(xiàn)方法

        一種S7-300與S7-200自由口無線通信實(shí)現(xiàn)方法

        作者: 時間:2016-12-16 來源:網(wǎng)絡(luò) 收藏

          S7-300通信程序詳細(xì)介紹
          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
          //設(shè)一2秒定時器,定時時間到自動進(jìn)行下一次定時,當(dāng)前值存入MW40
          A(
          L MW 40
          L 102
          》I
         ?。?br />  A(
          L MW40
          L 200
          《I
          )
          = M30.1
          // 定時器第一秒鐘內(nèi),即102《MW40《200,M30.1為1
          A(
          L MW 40
          L 2
          》I
          )
          A(
          L MW 40
          L 100
          《I
          )
          = M 30.2
          //定時器第二秒鐘內(nèi)M30.2為1
          A (
          A M 30.1
          JNB _001
          L 0
          T MW 34
          SET
          SAVE
          CLR
          _001: A BR
         ?。?br />  JNB _002
          L 0
          T MW 36
          _002: NOP 0
          // M30.1為1時,即定時器第一秒內(nèi),使MW34=0、MW36=0,作為起始字節(jié)值
          A (
          A M 30.2
          JNB _003
          L 8
          T MW 34
          SET
          SAVE
          CLR
          _003: A BR
          )
          JNB _004
          L 8
          T MW 36
          _004: NOP 0
          // M30.2為1時,即定時器第二秒內(nèi),使MW34=8、MW36=8,作為起始字節(jié)值
          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
          // 調(diào)用發(fā)送指令,當(dāng)M30.1為1時(其上升沿初始化發(fā)送請求),即定時器第一秒內(nèi)發(fā)送DB2.DBB0起始的7個字節(jié),第一個字節(jié)為1站地址;當(dāng)M30.2為1時(其上升沿初始化發(fā)送請求),即定時器第2秒內(nèi)發(fā)送DB2.DBB8起始的7個字節(jié),第一個字節(jié)為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
          // 調(diào)用接收指令,當(dāng)M30.1為1時(允許讀數(shù)據(jù)),即定時器第一秒內(nèi)接收1號S7-200站回傳的6字節(jié)數(shù)據(jù),存入DB22數(shù)據(jù)塊中,起始字節(jié)為DB22.DBB0;當(dāng)M30.2為1時,即定時器第2秒內(nèi)接收2號S7-200站回傳的6字節(jié)數(shù)據(jù),存入DB22數(shù)據(jù)塊中,起始字節(jié)為DB22.DBB8
          3.2 S7-200端通信程序
          S7-200 PLC程序分為主程序、子程序和中斷程序,主程序完成控制和子程序調(diào)用功能,子程序完成通信口初始化功能,中斷程序完成數(shù)據(jù)的接收和發(fā)送功能。發(fā)送數(shù)據(jù)采用發(fā)送指令XMT,接收數(shù)據(jù)采用逐字節(jié)接收方法,通信口接收每個字節(jié)都會暫存到特殊存儲器SMB2中,并且產(chǎn)生中斷,利用中斷程序控制數(shù)據(jù)的接收。由于S7-200CPU的通信是建立在RS-485半雙工通信硬件的基礎(chǔ)上,接收和發(fā)送不能同時進(jìn)行。通信中斷程序要做到:接收指令不結(jié)束,就不能執(zhí)行發(fā)送指令。
          反映S7-200CPU工作方式的模式開關(guān)當(dāng)前位置的特殊存儲器位為SM0.7,它控制自由端口模式的進(jìn)入。當(dāng)模式開關(guān)處于TERM位置時,SM0.7為0;當(dāng)模式開關(guān)處于RUN位置時,SM0.7為1。SMB30是自由口模式控制字節(jié),用來設(shè)定校驗(yàn)方式、通信協(xié)議、波特率等通信參數(shù)(其各個位含義參閱相關(guān)手冊),中斷事件號8為端口0接收字符中斷,中斷事件號9為端口0發(fā)送完成中斷。
          當(dāng)SM0.7為1時,調(diào)用子程序SBR_0設(shè)置SMB30,允許進(jìn)行自由口通信;SM0.7為0時,調(diào)用子程序SBR_1重新設(shè)置SMB30,停止自由口通信,恢復(fù)PPI通信,便于用Micro/WIN軟件對CPU運(yùn)行狀態(tài)進(jìn)行監(jiān)視。S7-200通信程序流程如圖4

          


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



        關(guān)鍵詞: S7-200S7-300自由口無線通

        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 杭锦旗| 青浦区| 凤城市| 北辰区| 西丰县| 澎湖县| 两当县| 建平县| 鄢陵县| 彭州市| 东方市| 松潘县| 聂拉木县| 兴和县| 沙河市| 五原县| 清徐县| 三河市| 竹北市| 静海县| 库车县| 武功县| 金沙县| 延津县| 定州市| 绥阳县| 江阴市| 平山县| 班戈县| 鹰潭市| 静宁县| 海伦市| 通海县| 徐水县| 永兴县| 长寿区| 绵竹市| 贵阳市| 甘肃省| 日喀则市| 峨边|