0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

优雅的80个MODBUS通讯的变频器例子

opkgjew 来源:PLC标准化编程 2023-06-05 14:26 次阅读

0601 【万泉河】优雅的80台MODBUS通讯的变频器例子

为什么是80?80是我做的一系列PLC编程的例子,前面做过80个双联开关,80个模拟量的处理。现在把这个80系列继续做下去,准备控制80台MODBUS通讯的变频器。

有人会骂:胡闹!MODBUS通讯怎么可能带那么多站点!

没错,一条RS485总线肯定带不了这么多。所以我们打算使用MODBUS TCP转MODBUS RTU的网关来实现。一个网关转换出来一条485总线,可以带10台RTU(大约),那么8个网关就可以带80台了。当然也可以直接买那种一台网关带8路485输出的网关。

总之,就不在PLC上扩展RS485口了,反正数量也不够,价格也没有优势。所以,对PLC来说,做的只是MODBUS TCP通讯,当然原理和RTU是完全相同的。

都需要轮询。即, 每条总线上根据其挂载的RTU的数量以及需要的读写数据区进行循环读取,而各条总线之间互相不干扰,各自循环。

很多品牌的变频器原生支持MODBUS RTU通讯接口,所以这种通讯方案成本造价比较低廉,在工程项目中应用比较广泛。

我们这里控制的是ABB ACS系列的变频器。演示了针对ABB变频器所制作的专用的FB模块。然而后续也会有插曲,比如实际施工时,因为供应商原因或者采购周期原因, 其中的个别几台ABB变频器被替代成了DANFOSS变频器,然而我们如何不受干扰,如何通过模块化的手段,适应了这种现场的变更,而没有被折腾到崩溃。相信有一定工程经验的同行都或多或少会有过这样的经历。

实现的过程

按照我在宇宙观的文章里的观点, 在运行逻辑固定的情况下,一个控制对象完全可以实现模块化封装。那么要控制一台ABB变频器,我们需要送给它的参数只有2个:子网号和MODBUS站地址。

6eb3a24a-0196-11ee-90ce-dac502259ad0.png

然后它就该能够自动完成数据的轮询读写。而至于它的数据区的地址,需要的数据的数量,都在这个块里面了。只需要根据产品说明书的通讯部分,查阅后设计好这个FB块即可。 外围原本也不需要知道。

而至于485总线的通讯参数以及网关的IP地址等,都是在网关的相关参数部分实现,具体的设备对象是不需要每个都录入的。

在完成通讯功能的基础上, 控制的其他内容, 按照行业特点和需求,比如有的行业习惯于用通讯只读取状态和电流频率等数值,而对变频器启停控制仍然需要通过端子实现, 那么上述封装还可以增加IO管脚,这里不再演示。

我这里讲到的当然不是畅想,而是已经完成的历史。

程序的具体调用情况:

6ec71672-0196-11ee-90ce-dac502259ad0.png

程序中有屏蔽的部分,代表实际应用中,如果有设备减少, 也只需要屏蔽相应的调用,不再需要修改逻辑,数据区的排列,循环次数等等。全都不需要。需要的只是将调用这一行屏蔽。

而在声明区

6ed005ac-0196-11ee-90ce-dac502259ad0.png

看到第5台设备竟然诡异地变成了DANFOSS, 原因也是现场临时改动了变频器的型号,那么我们也只需要简单修改调用的FB的数据类型。其他的都不需要再动了。

当然,为DANFOSS又设计了专用的FB块。因为它的控制字,状态字地址与ABB都不同,所以当然需要专门再定制。

我曾经写过文章计划将所完成的这套GML MODBUS库的方法推广到西门子之外的其它品牌的PLC。然而响应者寥寥。可想而知我还是走的太超前了,同行们还都停留在原有的每个项目都去做程序做轮询,通过读取数据到一个大的数据块,然后控制逻辑中使用的模式。也是我自己曾经所采取的方式。

现在计划逐步放开分享这部分的程序源代码。包括所有品牌型号的标准化的学员,以及用量大于等于3台的WANQ的用户都可以免费得到。看到文章后可以私下向我索要。各位得到后在此基础上再发展研发的其它产品的模块,请务必再回馈我一份。完整的内容应当是一个FB以及这个通讯单元的应用说明书。

程序是V17下做的。原本是库函数在更低的环境下做的,调试也完全没有问题。只不过我现在电脑上只有V17,所以就用V17演示了。你如果要在低版本下实现,需要逐个块的内容逐个复制迁移到低版本中。大部分程序块是用SCL写的, 应该还算方便。

西门子之外的其它品牌的标准化的学员,你也只能得到V17的这个程序版本参考后可以在其它品牌中实现。那些品牌的MODBUS通讯我都没做过,所以我自己做不了。这些方面的拓展,有劳各位了。SMART 200的GML库函数我做过了,但控制对象不是变频器,这部分的学员可以私信我获取,但你需要做个ABB或者其它品牌的变频器的应用回馈我。

除此之外,如果有人要移植到其他品牌中,做的过程中可以咨询我,我可以给予一些帮助。

而对于用户之外的更多的同行,如果对这个框架结构感兴趣,可以分享一个删减版,我会把MODBUS 通讯部分的功能块删除后再打包后分享。获取方式我会分享到80系列的QQ群文件中,2个群都已经满员,然而游客也可以直接下载群文件,所以不会再扩展新群。群号到历史文章中得到。或者微信私信我获取。

虽然这个分享是有删减的, 但仍然是有价值的,删除的只是MODBUS通讯部分的6个功能块而已。而其他的模块化的封装,包括ABB变频器, DANFOSS变频器的控制块,以及我以前提到过的中央报警指示灯HA2的块,想了想也都保留在里面了,有爱好学习的可以参考。

咱们行业的习惯,大家还是更习惯自己的功能块自己用,用着放心。所以大家可以在参考我提出的思想的基础上自己补齐并调试实现。

RS485网络中不同子网的MODBUS站号是可以有重复的,当然也可以不重复。 这些都是随现场调试人员而定,只需要对应正确就可以。

另外,同一个子网上,也有可能不仅仅挂变频器,还会挂其他的仪表等设备,只需要在一个子网内不与现有设备的MODBUS站号冲突即可。但在程序的编写方面,则是在另外的环节,比如我有可能再写一个80台电能表的例子。然而与变频器毫无关系。即便同处一个485网络,也不需要再去协调轮询周期。

即, 那些把循环指令当核心算法的同行们可以知道了,循环只是在通讯逻辑内部实现的,不需要时刻挂在脑门上。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • plc
    plc
    +关注

    关注

    4975

    文章

    12254

    浏览量

    454907
  • 变频器
    +关注

    关注

    249

    文章

    5972

    浏览量

    139925
  • MODBUS
    +关注

    关注

    27

    文章

    1437

    浏览量

    75691
  • 通讯
    +关注

    关注

    9

    文章

    840

    浏览量

    34365
  • 编程
    +关注

    关注

    88

    文章

    3440

    浏览量

    92388

原文标题:0601 【万泉河】优雅的80个MODBUS通讯的变频器例子

文章出处:【微信号:PLC标准化编程,微信公众号:PLC标准化编程】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Labview Modbus变频器通信问题。

    新人小白求教。之前只用过Labview做过信号测量和处理。没有涉及到通信这块内容。最近在做一Labview和变频器通过Modbus通信直接控制电机转速的毕业设计。这里电脑(Labview)作为
    发表于 08-26 21:09

    丹佛斯FC 51系列变频器与labview Modbus RTU通讯实例

    附件是丹佛斯FC 51系列变频器与labview Modbus RTU通讯的实例!串口COM我放在data文件内的INI文件中,具体COM数值请按实际更改!主页面中地址,比如参数1-20,你只需要输入120就可以了,内部已经计算
    发表于 01-21 22:14

    移通创联Modbus转Profibus网关连接ABBACS530变频器配置案例

    波特率9600 8数据位 一停止位无校验 站地址为1先启用modbus RTU功能设置变频器通讯地址(本例为1)设置
    发表于 10-20 18:10

    基于Modbus 通信的变频器测试经验分享

    ,我发现把地线接上就不会有通讯丢失了,所以看下来,当一总线上面接了两套或多套变频器,那么一定要把地线(下图中蓝和黄色线)接上,不能直接modbus的正和负。这里备注一下,我是把屏蔽线
    发表于 07-16 16:57

    西门子S7200与变频器MODBUS通讯实例详解

    西门子S7200与变频器MODBUS通讯实例详解
    发表于 12-11 17:04 20次下载

    基于S7-1200的Modbus非周期通讯

    DS47 非周期通讯是PROFIdrive 行规定义的一种访问变频器参数的通讯方式,基于PROFIBUS 和PROFINET。V4.7.3 G120 变频器将该
    发表于 09-27 11:22 6次下载
    基于S7-1200的<b class='flag-5'>Modbus</b>非周期<b class='flag-5'>通讯</b>

    ABB变频器ACS510MODBUS通讯梯形程序

    ABB变频器ACS510MODBUS通讯梯形程序说明。
    发表于 05-07 14:05 61次下载

    MODBUS与台达变频器通讯

    MODBUS与台达变频器通讯1
    发表于 04-10 09:53 0次下载
    <b class='flag-5'>MODBUS</b>与台达<b class='flag-5'>变频器</b><b class='flag-5'>通讯</b>

    200plc与施耐德ATV610变频器modbus通讯

    200plc与施耐德ATV610变频器modbus通讯1,读写变频器的内部参数 2,控制变频器正反转,停止,读电压电流 3,设置
    发表于 04-10 10:51 12次下载
    200plc与施耐德ATV610<b class='flag-5'>变频器</b><b class='flag-5'>modbus</b><b class='flag-5'>通讯</b>

    兴达易控modbus转profinet网关与三菱变频器通讯

    本案例分享兴达易控modbus转profinet网关(MDPN100)连接西门子1200plc,实现三菱变频器485通讯兼容转modbusTCP通信,在博图中配置。
    的头像 发表于 07-17 15:19 342次阅读
    兴达易控<b class='flag-5'>modbus</b>转profinet网关与三菱<b class='flag-5'>变频器</b><b class='flag-5'>通讯</b>

    PLC通过Modbus转Profinet网关与合康变频器Modbus通讯配置案例

    PLC通过Modbus转Profinet网关(XD-MDPN100)与合康变频器Modbus通讯,实现了两个设备之间的数据交互。Profinet是一种基于以太网的实时工控网络协议,而
    的头像 发表于 10-17 14:15 361次阅读
    PLC通过<b class='flag-5'>Modbus</b>转Profinet网关与合康<b class='flag-5'>变频器</b><b class='flag-5'>Modbus</b><b class='flag-5'>通讯</b>配置案例

    上位机通过Modbus转Profinet网关与变频器Modbus通讯配置案例

    上位机与变频器Modbus通讯是通过Modbus转Profinet网关来实现的。这个网关可以理解为一个通信翻译器,负责将上位机通过Modbus
    的头像 发表于 10-25 20:55 607次阅读
    上位机通过<b class='flag-5'>Modbus</b>转Profinet网关与<b class='flag-5'>变频器</b><b class='flag-5'>Modbus</b><b class='flag-5'>通讯</b>配置案例

    MODBUS转PROFINET网关来连接台达VFD-E变频器与PLC的配置案例

    本文案例,工程现场,涉及到西门子1200PLC与台达VFD变频器之间的Modbus通讯,现场工程师应用了稳联技术的通过Modbus转Profinet网关,将PLC和台达VFD-E
    的头像 发表于 11-07 13:29 368次阅读
    <b class='flag-5'>MODBUS</b>转PROFINET网关来连接台达VFD-E<b class='flag-5'>变频器</b>与PLC的配置案例

    西门子1200PLC与台达VFD变频器Modbus通讯

    本文案例,工程现场,涉及到西门子1200PLC与台达VFD变频器之间的Modbus通讯,现场工程师应用了稳联技术的通过Modbus转Profinet网关,将PLC和台达VFD-E
    发表于 11-09 16:35 12次下载

    S7-1200和V20变频器MODBUS通讯实例

    V20变频器通过RS485线缆与PLC连接,使用标准的MODBUS通信协议进行通讯,通过modbus通讯,PLC给V20
    的头像 发表于 11-21 15:59 875次阅读
    S7-1200和V20<b class='flag-5'>变频器</b>的<b class='flag-5'>MODBUS</b><b class='flag-5'>通讯</b>实例