登录

行业资讯

Modbus RTU常见问题

Modbus RTU常见问题

常见问题

1.S7-200 SMART 是否支持 Modbus ASCII 通信模式?

STEP 7-Micro/WIN SMART 软件未提供Modbus ASCII 通信模式指令库。S7-200 SMART CPU若用于Modbus ASCII 通信时,则需要用户使用自由口通信模式进行编程。

 2.S7-200 SMART CPU 集成的RS485 端口(端口 0 )以及SB CM01 信号板(端口 1 )两个通信端口能否同时作为 Modbus RTU 主站或者同时作为 Modbus RTU从站?

S7-200 SMART V2.2版本支持两个通信端口同时做MODBUS RTU主站,不支持同时做MODBUS RTU从站。

 3.S7-200 SMART CPU作为 Modbus RTU 主站如何访问 Modbus 地址范围大于49999 的保持寄存器?

通常 Modbus 协议的保持寄存器范围在 40001 到 49999 之间,这个范围对于多数应用来说已经足够了,但有些 Modbus 从站保持寄存器区的地址会**出该范围。Modbus RTU 主站协议库支持保持寄存器地址范围为(40001 到 49999) 或者(400001 到 465536)。如果 Modbus 从站地址范围为 400001 – 465536,只需在调用 MBUS_MSG 子程序时给 Addr 参数赋相应的值即可,如 416768。

 4.S7-200 SMART CPU作为 Modbus RTU 主站,多次调用 MBUS_MSG 指令时,为什么该指令会出现 6# 错误代码?

1.同一时间只能有一条 MBUS_MSG 指令处于激活状态,如果激活多条 MBUS_MSG 指令,将执行**条 MBUS_MSG 指令,所有后续 MBUS_MSG 指令将中止执行并出现 6# 错误代码。多条 MBUS_MSG 指令的执行需要采用轮询方式 。

2. Modbus库存储区中分配的建议地址区与编程中已使用的V存储区有重叠。

 5.S7-200 SMART CPU作为 Modbus RTU 主站,从站故障或者通信线路断开时,主站会尝试发送多次请求报文,从而导致通信时间过长。如何减少主站的重发次数,以提高通信效率?

MBUS_MSG 指令被激活时将发送 Modbus 请求报文帧,如果在Timeout 参数定义的时间间隔内主站未接收到从站应答,Modbus RTU 主站协议库默认的情况下还会再发送 2 次 Modbus 请求报文帧;在最后一次请求报文帧发送后,经过 Timeout 参数定义的时间间隔后还未收到应答时, MBUS_MSG 指令的 Done 完成位才被设置为 1 。将 mModbusRetries 变量的数值由 2 改为 0 ,即可取消 Modbus 请求报文帧的重试次数。mModbusRetries 变量的**地址可通过查询Modbus RTU 主站协议库的符号表获取,如图 1. Modbus RTU 主站指令符号表所示。

图 1. Modbus RTU 主站指令符号表

 6.为什么有的 HMI 软件使用 Modbus RTU 协议可以读取作为 Modbus RTU 从站 S7-200 SMART CPU 的数据,但是不能写入数据?

可能此软件使用Modbus功能15写多个数字量输出功能到S7-200 SMART CPU时,没有遵守从站协议中“以整字节地址边界(如Q0.0、Q2.0)开始、以8的整数倍为位个数”的规约。定义HMI 软件严格执行此规律可以避免发生写入错误的情况

 7.为什么有的 HMI 软件使用 Modbus RTU 协议读取作为 Modbus RTU 从站 S7-200 SMART CPU 的浮点型数据时会出现错误?

可能此HMI软件使用Modbus RTU通信协议时,处理保持寄存器中浮点数的存储格式与西门子的浮点数存储格式不同。西门子的PLC遵循“高字节低地址、低字节高地址”的规约。
Modbus RTU的保持寄存器以“字”为单位,1个浮点型数据则由2个“字”构成。HMI软件在处理时可能会将保持寄存器的两个“字”互换位置,造成不能识别以西门子格式表示的浮点数。如果HMI软件一方无法处理这种浮点数,则可在S7-200 SMART CPU中编程将存入保持寄存器区的浮点数的高“字”和低“字”互换。

 8.S7-200 SMART紧凑型CPU作为 Modbus RTU 从站时,已经将 MBUS_INIT 指令的Mode 输入参数设置为“1”了,但是 MBUS_SLAVE 指令还是会出现 10 号错误(从站功能未启用)?

S7-200 SMART紧凑型CPU 不能扩展信号模块,不具有模拟量输入通道,如果MBUS_INIT 指令的MaxAI 输入参数设置不为“0”,则MBUS_SLAVE 指令会出现 10 号错误。

 9.S7-200 SMART 使用S7-200的Modbus slave库无法初始化成功?

如下图所示,使用STEP 7-Micro/WIN SMART 直接打开S7-200 MODBUS 通信程序并做相关设置后测试,

首先,图中的MBUS_INIT的相关参数针对200smart来说,设置均正常,但是从测试结果可以看出,初始化MBUS_INIT报错1:存储器范围出错,而且MBUS_SLAVE报错10:从站功能未启用

图2. MODBUS Slave报错

这是因为200的库程序里针对过程映像区MaxIQ(0-128),AaxAI(0-32)做的报警判断,如下图Modbus Slave程序所示,S7-200的过程映像区较大0-31,所以**过31会报错,【但S7-200smart的AI过程映像区较大255】

图3. MODBUS Slave报警判断

所以当S7-200 SMART需要设计AI大于31的地址时,考虑还是使用STEP 7-Micro/WIN SMART自己的库。

 10.S7-200 SMART CPU作为 Modbus RTU 从站时,是否支持 Modbus RTU 主站发送的广播命令?

S7-200 SMART CPU 作为 Modbus RTU 从站时,不支持广播命令。

 


上海腾希电气技术有限公司专注于西门子PLC,V90伺服,V20变频器等

免责声明: 八方资源网为互联网信息服务提供者,所有的信息均有发布者提供,如您发现信息有违规/侵权,请立即投诉举报

相关资讯

查看更多
资讯分类
商务服务 污水处理 机械 传媒 机床 五金 农业 工程机械 焊接切割 泵阀 热泵 农机 汽车 汽车用品 汽配 汽修 通信 电子 暖通空调 电气 广电 印刷 纸业 丝印特印 灯饰 安防 消防 过滤 耐火材料 环保 LED 添加剂 食品机械 仪器仪表 太阳能 包装 水工业 加工 二手设备 工艺礼品 古玩 服装 美容美发 服饰 制鞋 家电 家具 运动休闲 影音 酒店 家居 办公 音响灯光 农化 水果 养殖 皮具 教育装备 玩具 零食 食品 二手 IT 建材 小家电 卫浴 陶瓷 超硬材料 化工 橡胶 塑料 钢铁 表面处理 冶金 石油 能源 纺织 房地产 皮革 涂料 石材 创业 项目 生活服务 教育 船舶 维修 广告 交通运输 医疗 代理 物流 图片 展会 咨询 库存积压
八方资源网 资讯
进入商铺 电话咨询 在线洽谈 免费注册