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

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

3天内不再提示

体验模块化的MODBUS通讯以及GML开放计划

opkgjew 来源:PLC标准化编程 2024-01-02 10:17 次阅读

去年一个偶然的机会, 发现了一款国产的PLC编程平台,ANYCONTROL, 我们约等于可以认为它是一款国产的CODESYS。比较新颖,据说已经成功于不少国产PLC驱动器平台。

这个软件平台的特点是比较小。最新得到的版本才80M,然而我测试下来,功能相当完备,一点都不比完整的CODSYS软件差。非常惊讶他是如何做到的。

软件平台天生支持各种主流通讯总线协议, PROFINET, ETHERCAT, ETHERNET/IP , MODBUS TCP, MODBUS RTU等。

我们可以用电脑模拟PLC控制器来做通讯实验,系统给了一定的试用时间授权,对于实现功能测试,足够了。

上来测试,我没有使用PN, EIP等的硬件设备,一则硬件需要成本,二则硬件需要接线,也比较麻烦。所以我选择最入门的MODBUS TCP来做测试。因为它的成本最低。我们甚至可以在1台电脑内通过运行模拟软件,就可以实现。

当然,通讯成功后如果还想继续拓展,也可以用一台S7-1200来做PN从站,EIP从站以及MODBUS TCP服务端来实现硬件实验。我本来是有S7-1214的,所以本来想对为什么用软件模拟的理由解释是没有硬件,后来发现不对,我主要还是懒得折腾了。对面的从站那些功能的实现都是基本功能, 对我来说没什么悬念的,所以就没什么必要。

但读者们如果技能还不够熟练,也正在想尽各种途径找一些折腾的方案以锻炼自己, 那么搞一台S7-1200甚至SMART 200,再配合本题,就可以做很多事情,积累很多经验。尤其,西门子官方有出了PORTAL环境下的EIP通讯库,可以借机会了解一下。

上面是对读者的建议,而我本文的主题只做MODBUS TCP的通讯实验。

ANYCONTROL中建立X64的标准项目,增加ETHETNET网口,再在其中添加MODBUS TCP SERVER, 并在SERVER之下增加若干个从站,我这里是7个。

我在去年一开始第一次摸这个软件的时候,没有找到MODBUS TCP,以为其没有,就觉得很奇怪。后来发现在ETHERNET的类里。我是想当然的把ETHERNET当成了AB公司推行的ETHERNET/IP了。然而认知不一样,软件里是把EIP和MODBUS都作为了ETHERNET的一个子类。

db6d611a-a7b2-11ee-8b88-92fbcf53809c.png

为每一个从站设定网络参数,其中IP指向本地电脑网卡的IP,当然也可以127.0.0.1的。而ID各不同,相当有一个MODBUS TCP网关下的多个RTU从站。

db74fcc2-a7b2-11ee-8b88-92fbcf53809c.png

也给每个从站设置分配了所要通讯读写的数值,这里分别是读写40001开始的10个字

db8236d0-a7b2-11ee-8b88-92fbcf53809c.png

在IO映射配置中就自动得到了输入输出地址。

db8e9f38-a7b2-11ee-8b88-92fbcf53809c.png

比如2#站,读取40001数据的地址在IW60,而要写入数据到40001,则是QW60。

多个从站所分配得到的地址,分别为IW/QW 50,60,70,80,90,100,110。

PLC_PRG任务中,简单编写一些程序:

db967302-a7b2-11ee-8b88-92fbcf53809c.png

即完成了各站点数据的通讯编程工作。

电脑中打开MODSIM32软件,建立多个数据模拟窗口,分别设置不同的ID,对应PLC中所定义的各个从站。

db9ab156-a7b2-11ee-8b88-92fbcf53809c.png

然后PLC和MODSIM32分别开启模拟运行,通讯实验就成功了!

对。就是这么简单。

即便是MODBUS通讯这样在我们用习惯了SIEMENS PLC, 通常认为比较麻烦, 需要在PLC中编制复杂策略的轮询程序来实现,在这里都异常简单,就是简单地以模块化的组态的方式拖拖拽拽,填填参数,就完成了。尤其是,即便实际项目中,需要增加或者删除一个站点,也只是增加或者减少这个站点本身,而不需要对其他原本存在的站点进行任何变动。这样的模块化才是真正的模块化。

而在SIEMENS应用圈里,要实现MODBUS和MODBUS TCP通讯,可是一件了不得的大事。所有在工程项目中有成功应用的工程师,都值得拿出来总结一下大书特书。历届的西门子专家会议论文中,这方面的话题总是不断。而网上相关这方面的文章更是多如牛毛。

我自己,写过的关于MODBUS通讯的文章就不下20篇。因为我逐步不仅仅实现了轮询,还做了封装和模块化,并做成了标准的库函数GML,做到了如本文ANYCONTROL组态一样简单设置参数就可以实现通讯任务。当然,我们的组态是在程序里,通过模块的参数设置实现。

也曾经想征集有理想有需求的同行, 将这个模式拓展到三菱,欧姆龙等同样配置需求的PLC系统中。然而得到响应并不积极。

现在则发现,就像汽车有传统车厂和新的造车新势力一样, PLC行业也有传统势力和新势力之分。对于PLC新势力,不管是ANYCONTROL , CODESYS,以及我没摸过的其它平台,至少在MODBUS通讯方面已经系统内置了轮询功能,应用工程师在使用时,只需要简单模块化使用, 当然,对施耐德来说,MODBUS本来就是其自家协议,当然也早就内置的,根本不需要专门做逻辑程序实现。

近些年, PLC新势力蓬勃发展,这种细节方面的简单易用一定在其中起到了重要的作用。也不可避免地导致了那些旧势力的被日渐冷落。而即便如西门子这样的行业龙头,也必然不可避免会受到冲击。

那么对于我们这些多年使用西门子,偏爱西门子,甚至曾经入职西门子为其工作,将其视为自己家人般的工程师来说, 指出来事实真相当然不能算作是背叛,而我们能做的则是对发现的其中的短板帮忙加以补足,也算是弥补这一缺陷方面做出些自己的贡献。

所以,我打算将我前面开发的S7-1200/1500和SMART 200的MODBUS 封装库GML以极低的价格出售。3年前都是价格1000的。但现在需要的工程师以几十元价格就可以得到,就可以以后在项目中重复永久使用了。

因为在TIA PORTAL中的库函数在软件升级后加密块无法编译,所以会针对V16-V19的每个版本单独做成加密库,TCP和RTU分开,S7-1200和S7-1500因为代码参数不同也分开的,另外SMART 200只做了RTU版本, 对于TCP因为一直没有需求,所以暂时没做,以后估计不大会有这方面的需求。







审核编辑:刘清

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

    关注

    0

    文章

    398

    浏览量

    28594
  • GML
    GML
    +关注

    关注

    0

    文章

    4

    浏览量

    8233
  • modbus通讯
    +关注

    关注

    0

    文章

    13

    浏览量

    1694

原文标题:1231 【万泉河】体验模块化的MODBUS通讯以及GML开放计划

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

收藏 人收藏

    评论

    相关推荐

    NI模块化开放式硬件平台在风电行业的应用

    NI 模块化开放式硬件平台在风电行业的应用.pdf
    发表于 04-28 10:04

    为什么要开发模块化的软件架构?

    。新一代的测试架构应当容纳多种产品的测试需求并促进新型测试技术的添加,从而在未来实现其他的测试融合。开发强健开放的测试软件架构,对于设计模块化的测试架构至关重要。
    发表于 08-12 08:06

    实用性通信采集系统的模块化硬件设计

    本文从主从通讯电路、以太网通讯电路、电流环通讯电路、开关量输入与输出电路,共几个方面详细介绍了一种实用性通信采集系统的模块化硬件设计。本设备采用模块
    发表于 07-10 13:29 14次下载

    模块化Java:动态模块化

    在前一篇文章《模块化Java:静态模块化》中,我们讨论了如何构建Java模 块并将其作为一个单独的JAR进行部署。文中的例子给出了一个client和一个 server bundle(两者在同一个VM中)
    发表于 12-01 11:54 24次下载

    模块化逆变电源的设计与应用

    模块化逆变电源的设计与应用 摘要:讨论模块化逆变电源的应用场合及设计特点,并以某定向陀螺用的逆变电源为例,
    发表于 07-10 11:31 1468次阅读
    <b class='flag-5'>模块化</b>逆变电源的设计与应用

    串行RapidIO提升模块化基站设计

    串行RapidIO提升模块化基站设计 蜂窝基站的模块化设计和制造对组合视频、语音和数据等 3G 移动服务,即通常所说的“三重服务”至关重要。但是,为什么模块化设计
    发表于 03-10 13:56 1074次阅读
    串行RapidIO提升<b class='flag-5'>模块化</b>基站设计

    模块化程序设计

    模块化程序设计思想,单片机c语言的模块化设计,方便移植,将程序封装备用。
    发表于 03-22 15:29 9次下载

    Modbus/TCP通讯配置

    MODBUSTCP 是简单的、中立厂商的用于管理和控制自动设备的MODBUS 系列通讯协议的派生产品,它覆盖了使用TCP/IP 协议的Intranet和Internet环境中MODBUS
    发表于 09-30 09:13 38次下载
    <b class='flag-5'>Modbus</b>/TCP<b class='flag-5'>通讯</b>配置

    模块化UPS电源的构成以及优缺点盘点

    模块化UPS是由机架、UPS功率模块、静态开关模块、显示通信模块以及电池组构成。
    发表于 01-20 11:23 7163次阅读

    解读Modbus通讯协议

    作为工控人,Modbus 通讯协议想必都不陌生,Modbus 通讯协议可以说是工业自动领域应用最为广泛的
    的头像 发表于 11-09 16:39 1457次阅读

    Modbus TCP通讯协议概述

    Modbus TCP通讯概述 MODBUS/TCP是简单的、中立厂商的用于管理和控制自动设备的MODBUS系列讯协议的派生产品,显而
    的头像 发表于 01-04 17:51 3w次阅读
    <b class='flag-5'>Modbus</b> TCP<b class='flag-5'>通讯</b>协议概述

    模块化机房和传统机房有哪些不同

    传统机房的规划设计、运营管理都较为落后,而模块化机房却因其高性价比、高可用性的建设模式,获得众人熟知并认可,可见“模块化”理念愈加深入人心。那么,模块化机房和传统机房有哪些不同?科兰通讯
    的头像 发表于 09-15 09:56 8882次阅读

    什么是模块化自动

    什么是模块化自动
    的头像 发表于 03-10 16:29 2647次阅读
    什么是<b class='flag-5'>模块化</b>自动<b class='flag-5'>化</b>?

    模块化UPS是什么?模块化UPS电源并机的优点

    模块化UPS是什么?模块化UPS电源并机的优点  模块化UPS是一种将UPS电源拆分为多个独立模块的解决方案。每个模块包括一个或多个电池组、
    的头像 发表于 01-10 15:16 1184次阅读

    模块化插座接线方法有哪些

    扩展或改变插座的功能。以下是一些模块化插座接线方法的概述,以及一些安全和安装的注意事项。 1. 基本接线方法 模块化插座的基本接线方法通常包括以下几个步骤: 1.1 断开电源 在开始接线之前,确保断开电源,以防止触电事故。 1.
    的头像 发表于 10-18 09:50 200次阅读