回复: 200smart与艾莫迅IO模块做 MODBUS TCP 通讯

zhangli0

西门子1847工业学习平台

  • 帖子

    17404
  • 精华

    65
  • 被关注

    919

论坛等级:至圣

注册时间:2003-06-06

钻石 钻石 如何晋级?

发布于 2025-08-10 13:08:01

1楼

你需要在通讯中断后,间隔一定时间如果还没有通讯恢复,就初始化通讯参数一次。超过多少次就报警就行了。

指令参数配置(以 “读艾莫迅输入点” 为例)

参数

说明

示例配置

Mode    操作模式(读 / 写类型):
- 1 = 写单个线圈;3 = 读保持寄存器;4 = 读输入寄存器    读输入点(3x 区)→ Mode=4    

RemoteIP    艾莫迅模块的 IP 地址(字节数组)    VB100=192, VB101=168, VB102=2, VB103=10    

RemotePort    艾莫迅模块的 MODBUS 端口(固定 502)    VW104=502    

LocalPort    200 SMART 本地端口(0 = 自动分配)    VW106=0    

UnitId    从站地址(MODBUS TCP 中通常为 1,部分模块需与硬件地址一致)    VW108=1    

StartAddr    寄存器起始地址(30001 对应 0,40001 对应 0,00001 对应 0)    读 30001→VW110=0    

Length    读取的寄存器数量(如读 2 个输入点)    VW112=2    

DataPtr    数据缓冲区(存放读取结果,如 V 区)    &VB200(结果存 VB200~VB203)    

Enable    使能信号(首次扫描 SM0.1 触发初始化,或持续使能实现周期读取)    SM0.1(初始化)或SM0.0(周期读)    

Done    操作完成标志(1 = 成功)    监控Done判断是否初始化成功    

Error    错误代码(0 = 无错;非 0 需排查,如 6 = 连接失败)    错误时根据代码定位问题    

(2)程序示例(初始化逻辑)

plaintext

// 首次扫描触发初始化(读取艾莫迅输入点)
LD     SM0.1
=      L0.0

// 调用MB_CLIENT
CALL   MB_CLIENT, L0.0, 4, &VB100, VW104, VW106, VW108, VW110, VW112, &VB200, Q0.0, MB100

// 监控结果:Done=1且Error=0表示初始化成功
LD     Q0.0          // Done=1
AN     MB100         // Error=0
=      Q0.1          // 通讯正常标志


活到老,学到老!为了生活学习吧!
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200 SMART

共有9338条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。