s7200自由口与多台仪表通讯

通讯规约
     说明:()内为内容说明,通讯数据均为ASCII码
 通讯规则
 发(上位机发送ASCII码) @XX(站号00至15)R(r大小写均可)
 回 (下位机返回ASCII码)   :(前导符)XXXX  XXXX  XXXX  XXXX  XXXX  XXXX  XXXX  XXXX (8路通道数据,范围0000~9999) XXXX(站号,板号)CRLF(两字节表示回车、换行)。
 通过S7 200自由口通讯怎样循环发送接收
 3块相同仪表的数据。如何做到通讯故障检测,
 自动跳过故障仪表。

问题补充:
单块仪表通讯已建立,如何实现3块仪表的循环和通讯故障检测。程序如下:
  主程序
  网络1
  LD     SM0.1
  MOVB   16#09, SMB30
  MOVB   16#B0, SMB87
  MOVB   16#0A, SMB89
  MOVW   +5, SMW90
  网络2
  LD     SM0.1
  MOVB   200, SMB34
  ATCH   INT_0:INT0, 10
  网络3
  LD     SM0.1
  ATCH   INT_1:INT1, 9
  ATCH   INT_2:INT2, 23
  ENI

  INT0
  LD     SM0.0
  DTCH   10
  MOVB   4, VB200
  MOVB   16#40, VB201
  MOVB   16#30, VB202
  MOVB   16#31, VB203
  MOVB   16#52, VB204
  XMT    VB200, 0

  INT1
  LD     SM0.0
  DTCH   10
  RCV    VB100, 0

  INT2
  LD     SM0.0
  ATCH   INT_0:INT0, 10

 我想将 MOVB   16#31, VB203 用MOVB VB300 VB203代替
 用LD SM86.5
   EU
   INCB VB300
 做累加
 当无反馈数据时如何累加地址
 比如第三个模块损坏
 

最佳答案

用LD SM86.5
   EU
   INCB VB300

 用这个你能测试哪个仪表?

 MOVB   16#B0, SMB87
 如果仪表有问题,或者有干扰,收不到结束字符,那怎么停止RCV?

 
 MOVB   4, VB200
  MOVB   16#40, VB201
  MOVB   16#30, VB202
  MOVB   16#31, VB203
  MOVB   16#52, VB204
  这些放到数据块里就可以了,数据块空间那么大。

  

  
  1 说一下思路:
   先通讯初始化
   向仪表1发数据,发送完成中断里接收,接收完成里定时,定时中断里向仪表2发送数据,发送完成中断里接收,接收完成里定时,定时完成中断里向仪表3发送数据,发送完成中断里接收,接收完成里定时,定时中断里向仪表1发送数据,如此循环。
   这样做的目的是思路清晰,但中断程序较多,如果从站更多的话,就没必要这样做了,用间址的方式,只要两个中断就可以和若干个从站通讯。

   2 3块相同仪表的数据。如何做到通讯故障检测?
   当向仪表发数据时,它不回数据,那就证明通讯有问题了。

   LDB=   VB3070, 0
   TON    T254, 15

   LD     T254
   =      V3200.0  (通讯故障位)

   3 西门子提供的modbus主站库只支持RTU的方式。

提问者对于答案的评价:
分析透彻 思路清晰 多谢支持

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc353496.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2021年7月5日 上午1:34
下一篇 2021年7月5日 上午1:34

相关推荐

  • CPU224与组态王通讯问题

    大家好,我有一台CPU224,想通过组态王6.5.1建立上位机监控系统。在用组态王的过程中,在定义外部设备时的向导里有一项是需要填设备地址,我看了他的帮助文件依然没有搞懂。我只有一…

    SIMATIC S7-200 2021年7月5日
  • em235和PT100

    请各位老师告诉我一个程序,EM235输入范围是0~1v,输出是5mA恒流。AQW0=8000,只要求在触摸屏上显示温度就行。 问题补充:能发个示例给我就最好了,万分感激!&nbsp…

    SIMATIC S7-200 2021年7月5日
  • s7200与ABB变频器之间的通讯怎样做呀?

    我刚刚开始学习,请多多帮助。 问题补充:自由口通讯方式编程收发报文直接用V3.2 STEP 7 MicroWIN SP4的S7-200软件可…

    SIMATIC S7-200 2021年7月5日
  • MW VW IW可不可以用奇数表示?

    我们编程的时候一般都是用MW0 MW2,但是我们可不可以用MW1 MW3的奇数啊? 最佳答案 可以,没有规定只能用偶数 MW0 包含MB0和…

    SIMATIC S7-200 2021年7月4日
  • 数据类型问题 VD 与VW

    我S7200中的VD值为何flexiable显示不出来,非要我把PLC中的VD转成VW才能显示吗我Flexiable中的数据类型DWORD,还有REAL也试过,都不显示啊 问题补充…

    SIMATIC S7-200 2017年8月3日
  • 温度变送器与plc怎么转换

    231 一个 温度变送器 量程 -50—50 可以接0–50的pt100吗 如果能 plc程序的最大量程…

    SIMATIC S7-200 2017年11月20日
  • 请教一个线缆的常识问题

    我想买根线缆,用它来把一个224XP与电脑的串口连接. 到市场上发现有三种, 第一种是:一端有一个头,另一端有多个头的 第二种是:一端有一个头,另一端…

    SIMATIC S7-200 2021年7月5日
  • S7_200 Sm0.1 是什么?

    难道是首次上电置1? 最佳答案 初始化脉冲,PLC通电第一个扫描周期ON一个周期,随后就一直OFF,主要用于设备通电复位一些动作,及顺序控制程序置位初始步. 提问者对于答案的评价:…

    SIMATIC S7-200 2017年6月27日
  • 自由口通讯程序求解

    本人在学习别人写的自由口通讯程序时,再子程序中看到有循环的功能.本人不理解为啥要出现FOR  (NEXT)这一段指令呢。他们之间的程序不是一直循环执行,执行到设…

    2017年11月27日
  • S7200更换CPU后通迅不上,怎样解决

    以前用的的CPU226CN,用的是USB的PPI通迅。发现其中一个通迅口坏了。我们需要两个通迅口。现在更换成CPU226,可是换上之后怎样都通迅不上。换成以前的CPU226CN就可…

    2020年10月31日

发表回复

登录后才能评论