西门子PLC1200与200Smart 通过Modbus TCP通讯

1200做服务器,200smart做客户端。先设置1200的参数,选择:通信--其它--MB_SERVER

新建一个数据块DB4,a1/a2两个字,用来监控数据传送。

新建一个客户端连接参数的数据块,DB3,设置——
1.TCON_IP_v4这个数据类型博图里没有默认可选的,需要手动输入;
2.Interfaceidying硬件识别号,在CPU属性-系统常数里找;
3.ID默认填1;
4.ActiveEstablished,1200做服务器是被动连接填0;如果做客户端主动连接填1;
5.IP地址,Byte类型的4个数组,填需要连接的客户端IP地址,若允许任意设备连接,填0;
6.RemotePort,远程端口号,填0;
7.LocalPort,本地端口号,默认502

 

与200smart通讯,读取数据成功

 

用Modbus Poll测试下,读取地址默认为0,对应1200的DB4.DBW0开始的2个字

数据传输成功

 

 

 

  • 2
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要将通过 Modbus TCP 通讯得到的数据在西门子 SMART 触摸屏上显示为时间,需要进行以下步骤: 1. 在 S7-200smart PLC 中,将 Modbus TCP 通讯得到的数据以 BCD 码的形式存储。BCD 码是一种二进制编码形式,可以表示数字 0~9。 2. 在 TIA Portal 软件中,创建一个 HMI 项目,并添加一个显示时间的控件,例如数字时钟控件。 3. 在 TIA Portal 软件中,配置 Modbus TCP 通讯模块,将其连接到 S7-200smart PLC,并设置读取数据的地址和数据类型。 4. 在 TIA Portal 软件中,编写脚本程序将 Modbus TCP 通讯得到的 BCD 码转换为时间格式,并将时间显示在数字时钟控件中。具体转换方法可以参考以下示例代码: ``` // 假设 Modbus TCP 通讯得到的数据存储在变量 data 中 int hour = ((data >> 8) & 0x0F) * 10 + ((data >> 12) & 0x0F); // 获取小时数 int minute = ((data >> 4) & 0x0F) * 10 + (data & 0x0F); // 获取分钟数 int second = 0; // 假设秒数为 0 char timeStr[9]; // 存储时间字符串的数组 sprintf(timeStr, "%02d:%02d:%02d", hour, minute, second); // 格式化时间字符串 // 将时间字符串显示在数字时钟控件中 ClockCtrl.SetPropertyValue("Text", timeStr); ``` 以上代码中,`data` 变量存储的是 Modbus TCP 通讯得到的 BCD 码数据,通过位运算和数值转换得到小时数和分钟数,并将时间格式化为字符串后显示在数字时钟控件中。其中,`ClockCtrl` 是数字时钟控件的对象,通过 `SetPropertyValue` 方法设置其属性值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Sam*青华

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值