关于Modbus-RTU用MB_MASTER指令块使用的问题

1200PLC做MODBUS通讯主站程序时,需要调用MB_COMM_LOAD这个块用于初始化模块,这个块有个MB_DB管脚是连接MB_MASTER通讯块的背景数据块的,但在程序中需要多次调用MB_MASTER这个块,每次调用都会生成一个背景数据块,假设我有两个MB_MASTER这个块,分别有两个背景数据块,在初始化的时候如何同时初始化这两个背景数据块?还是MB_MASTER用一个背景数据库即可?通讯的轮询方式和200的一样?

问题补充:
我想知道的是我调用MB_MASTER如果有多少个是否可以共用一个背景数据块?MB_MASTER的使能端我采用上次调用的完成信号来启动,上次通讯的完成信号同时复位上次MB_MASTER的使能端;这样做可以吗?如果不可以的情况下做MODBUS通讯时有多少个MB_MASTER就得有多少个MB_CONN_LOAD?这样是不是有点太麻烦了?

最佳答案

"必须调用“MB_COMM_LOAD”一次以组态该端口使用 Modbus RTU 协议。 完成组态后,“MB_MASTER”和“MB_SLAVE”指令可以使用该端口。

"MB_COMM_LOAD" 只需再(注意这个再字)被调用一次,就可修改某个通信参数。 每次“MB_COMM_LOAD”调用将删除通信缓冲区中的内容。 为避免通信期间数据丢失,应避免不必要地调用该指令。

所以只要你执行某个MB_MASTER块前都执行一次MB_COMM_LOAD,而这个MB_COMM_LOAD的MB_DB管脚与要执行MB_MASTER块相对应就可以

对补充的回复:
1、你的想法可以,多个MB_MASTER可以共用一个背景数据块(见附图)
2、如果不是特殊原因,一个通信端口最好用一个MB_MASTER就可以了,多站轮询访问只需要在调用MB_MASTER之前整理好相关变量数据,从站地址、从站读取起始地址、读取字数、存放地址都可以是变量,做一个通信指针不停的去改变这些变量就可以

图片说明:

关于Modbus-RTU用MB_MASTER指令块使用的问题  

提问者对于答案的评价:
谢谢了

专家置评

已阅,最佳答案正确。
请参阅以下链接中多站轮寻的例子。
如何使用 STEP 7 (TIA Portal) V11 为 SIMATIC S7-1200 建立 MODBUS-RTU 通讯?
http://support.automation.siemens.com/CN/view/zh/47756141

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

(2)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年10月24日 下午7:13
下一篇 2017年10月24日 下午7:13

相关推荐

  • S7-1200与计算机通讯问题

    1214C 在可访问设备中能看见MAC等信息,但是在项目树中显示这一栏是灰色,在线和诊断中信息都是空白,一点分配IP地址,就提示该程序遇到问题,需关闭。求助! 最佳答案 …

    SIMATIC S7-1200 2017年6月3日
  • S71200 FOR 语句无法执行11

    i始终=1a一直在累加,感觉一直在循环语句中,未跳出 图片说明:       最佳答案 你这个应该是执行了第一个扫描周期a执行到50跳出循环…

    2017年6月4日
  • 想通过轴对应的高速计数器查看脉冲数

    组态了轴工艺对象,能否通过对应的高速计数器过程映像区查看脉冲数?应如何查看输出的脉冲数? 最佳答案 无法直接查看,需要进入工艺背景DB块中察看 提问者对于答案的评价:标准答案请参考…

    SIMATIC S7-1200 2017年11月12日
  • 请教1200编程问题

    刚刚开始接触1200.感觉和300的差不多,下载的是英文版,不怎么熟悉,刚刚在一台老PLC在线的程序,却出现了这样的情况如图1.求解是什么原因,好像是台湾的设备。注意一下图中下面的…

    2017年11月1日
  • S7-1200和MP277-8“的连接

    1. 请问S7-1200系列CPU 1214C DC/DC/Rly(6ES7 214-1HE30-0XB0)的PLC是否可以和MP&nbsp…

    2017年11月4日
  • 一个主站读取两个从站里的数值

    通过MODBUS协议,但是只读取到了一个从站的数值,并未读取到另一个从站的数值,什么原因? 最佳答案 查一下程序块上的ID号 提问者对于答案的评价:是ID的问题 专家置评 你这是m…

    SIMATIC S7-1200 2017年6月19日
  • S7-1200中,DINT数据的高16位和低16位转换的问题

    博图中,有没有将一个32位的DINT的高16和低16位字节交换的命令(不是SWAP指令,SWAP好像只支持word类型数据,而且看帮助是4个字节都交换了)。用MOVE的方式,好像和…

    2017年6月9日
  • DASSIDirect连接S7-1200的DB1

    请问高手:我在S7-1200的CPU设置中取消了“优化的块访问”也选择了“允许从远程伙伴访问”。但在DASSIDirect中没能收到数据。请问什么资料后案例可以参考?谢谢! 图片说…

    2017年8月3日
  • 博图轴工艺的左右限位问题

    1请问硬件限使用的话 如果向左移动碰到了左限位 就不能运动了吗? 我的情况是 碰到一个限位 就不能向左或者向右运动了(限位只触发一…

    SIMATIC S7-1200 2017年6月9日
  • 1200中调用TSEND_C

    1200中调用TSEND_C时,为什么不能生成PLC_1_Connection_DB数据块,高手指点原因,如果不能自动生成,应该怎么解决。 最佳答案 1200中调用TSEND_C时…

    SIMATIC S7-1200 2017年8月26日