【SCL编程案例】MODBUS RTU轮询处理

已锁定

手机用户20180604694547

  • 帖子

    1081
  • 精华

    7
  • 被关注

    33

论坛等级:奇侠

注册时间:2018-06-04

钻石 钻石 如何晋级?

【SCL编程案例】MODBUS RTU轮询处理

17041

33

2025-05-22 09:15:19

该案例是使用1500CPU通过MODBUS RTU来采集配电房中的电表进行能源监控。这里只展示其中一个PTP模块的程序,该模块一个接了29块电表,电表类型有两种,第一种读取起始地址位40007读取长度为48个word 第二种读取起始地址为40007读取长度为64.

下面是FB块的变量部分:



其中ID变量的结构为:



ID表示从站的战号,tyep表示电表的类型。

下面是主程序部分的初始化:

初始化中先执行了初始模块的指令,然后将MODBUS站号,设备类型等写入到地址中,由于我这里读取数据只用100个byte数据的数组,有一种电表的数据长度超过100个byte,所以我这里是分了两次进行读取。

下面的是启动以及计数,其中增加了一个定期初始化轮询的指令。

下面是写入站号,地址,地址长度,以及执行modbus指令和指令执行后的错误处理:

下面是读取完数据进行数据处理:


这个项目刚开始的时候我是使用官方案例中的梯形图轮询方式进行程序编写的,刚开始还好,但这个项目中大概使用了20个PTP模块,写了三四个模块的程序后我发现PLC的代码工作存储器空间满了,写不下去了,后来我才改成使用SCL进行编程,最终我将全部程序写完也只不过使用了50%多一点的代码工作存储器。



【SCL编程案例】MODBUS RTU轮询处理 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1500系列

共有11192条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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