新聞中心

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

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

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

  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
  //設(shè)一2秒定時器,定時時間到自動進行下一次定時,當前值存入MW40
  A(
  L MW 40
  L 102
  》I
 ?。?br />  A(
  L MW40
  L 200
  《I
 ?。?br />  = M30.1
  // 定時器第一秒鐘內(nèi),即102《MW40《200,M30.1為1
  A(
  L MW 40
  L 2
  》I
 ?。?br />  A(
  L MW 40
  L 100
  《I
 ?。?br />  = 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
 ?。?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ā)送指令,當M30.1為1時(其上升沿初始化發(fā)送請求),即定時器第一秒內(nèi)發(fā)送DB2.DBB0起始的7個字節(jié),第一個字節(jié)為1站地址;當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)用接收指令,當M30.1為1時(允許讀數(shù)據(jù)),即定時器第一秒內(nèi)接收1號S7-200站回傳的6字節(jié)數(shù)據(jù),存入DB22數(shù)據(jù)塊中,起始字節(jié)為DB22.DBB0;當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ā)送不能同時進行。通信中斷程序要做到:接收指令不結(jié)束,就不能執(zhí)行發(fā)送指令。
  反映S7-200CPU工作方式的模式開關(guān)當前位置的特殊存儲器位為SM0.7,它控制自由端口模式的進入。當模式開關(guān)處于TERM位置時,SM0.7為0;當模式開關(guān)處于RUN位置時,SM0.7為1。SMB30是自由口模式控制字節(jié),用來設(shè)定校驗方式、通信協(xié)議、波特率等通信參數(shù)(其各個位含義參閱相關(guān)手冊),中斷事件號8為端口0接收字符中斷,中斷事件號9為端口0發(fā)送完成中斷。
  當SM0.7為1時,調(diào)用子程序SBR_0設(shè)置SMB30,允許進行自由口通信;SM0.7為0時,調(diào)用子程序SBR_1重新設(shè)置SMB30,停止自由口通信,恢復(fù)PPI通信,便于用Micro/WIN軟件對CPU運行狀態(tài)進行監(jiān)視。S7-200通信程序流程如圖4

  


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



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

評論


相關(guān)推薦

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

關(guān)閉