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日

相关推荐

  • s7200与仪表通讯

    s7200与仪表通讯,S7-200上走自由口通讯模式,以字符A作为接收的起始和判断条件,在通讯正常后,如果将通讯线拔掉,为什么200中显示通讯正常,要过很长时间后才显示判断条件故障…

    SIMATIC S7-200 2020年11月1日
  • 求助 模拟量编程 量程什么时候用6400-32000 什么时候用5530-27486

    求助 版主推荐答案 200的信号范围是0~32000,200smart是0~27648,如果组态是0~20mA,而实际输入是4~20mA,则200中,4~20mA对应6400~32…

    SIMATIC S7-200 2017年5月28日
  • 200CPU 输出点的使用

    要使用cpu 224xpcn的输出点作为一个开关控制220V的交流回路,把cpu的L+和Q0.0两点接在回路中,为啥Q0.0没有输出时和有输出时回路都是通的?把这两点和回…

    SIMATIC S7-200 2017年11月20日
  • v存储器显示值

    此段程序中VD2000为什么显示数值134217728 问题补充:VD2000最终指向的是不是地址VB(0+vw103)?为什么显示134217728这么的的数值。 图片说明: &…

    2017年8月15日
  • CPU224XPdiaoyongMODBUS有大量错误

    我用CPU224XP在0#口带了一个TD400C,再在1#口带一个modbus,编译后说在MBUS_CTRL_1(子程序)和MBUSM2_P1(中断)有大量错误,都是11,33,3…

    SIMATIC S7-200 2021年7月5日
  • 写入EEPROM问题

    尝试将VD110存入EEPROM,监控发现,VD110初始值为0,我用文本设置VD110值为100,VD110数据变化的同时将VD110写入EEPROM中,监控看到VD110确实变…

    2018年12月14日
  • 请教两台s7-200通信的配置问题

    现在手头上有两台S7-200,一台是cpu224(一个串口),还有一台是cpu224xp(两个串口),另外还有一个PPI-RS485编程电缆,现在想实现两个PLC的通信,224xp…

    SIMATIC S7-200 2020年11月1日
  • 200smart Am06闪红灯提示用户电源报警?

    原来是正常运行的,因为着火导致电动调节阀线路短路,之后4个AM06模块就全变红灯了,200CPU是正常的,量24供电(独立的24V开关电源)又是正常的,因为手里没有新模块所有不好更…

    2021年7月5日
  • s7200 与组态王通讯

    s7200 用modbus协议与组态王通讯时,它们之间的通讯线也必须要使用RS485-RS232转换吗?能否将s7200的通讯口与PC机串口直接相连 最佳答案 电脑串口是…

    SIMATIC S7-200 2021年7月5日
  • 威纶MT8000与s7200连接

    威纶MT8000与CPU266通过S7200的以太网扩展模块CP241-1连接,哪位大侠做过,详解一下硬件连接与软件设置。多谢! 最佳答案 发到你邮箱了,在392页 提问者对于答案…

    SIMATIC S7-200 2020年11月1日

发表回复

登录后才能评论