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

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

3天内不再提示

手把手带小白做MODBUS通讯实验

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

我们做程序库封装的基本要义是高内聚低耦合, 而评价低耦合的终极体现则是使用实现过程的优雅程度。

换大白话说便是,即便一个啥都不懂的小白,经过简单的辅导,就可以实现应用。具备应用到工程现场中的能力。而至于原理不懂, 无所谓。能独立先把工作任务完成了最重要。这就是优雅。

我曾经发布了《0601 【万泉河】优雅的80个MODBUS通讯的变频器例子》,并将例子有偿或无偿分发给了部分感兴趣的学员。

然而发现,其实MODBUS通讯的技能, 并不是工控行业必备。有一些做非标设备的学员,各种轴类,张力控制应用等非常娴熟,然而十几年工作经验,都有可能没用过MODBUS通讯。因为实在用不到。

而有用过的学员, 经验也非常少。可能也就有过一次两次跟MODBUS仪表的通讯经验,所带的站点也不过是1-2台。所以80的例子就对他们来说有些上头。有学员来参加会议从飞机场见面后,就开始反复问我程序块中的SUBNET接口是什么。反复解释都不能理解。主要是他们的工程应用中没有机会遇到我们一个CPU下动辄几百台RTU需要控制的情况。

所以, 直到做相关行业的学员,在会上做了应用分享之后,疑惑才稍微打消。

然后,我在会上就许诺大家,我会做一个小白教程,带大家学会使用这套GML库的方法。所以本文另一个题目可以叫做: GML 库函数使用方法。

需要的设备:

1,一台CPU1214。

2,一台电脑

即,我们可以在只有一台电脑+一台CPU的情况下,就完成MODBUS通讯实验学习。当然,也有可能不使用实体的CPU硬件,只用一台电脑,电脑上用PLCSIM的某个版本也可以实现。但我因为有这个CPU硬件,而电脑上跑不起来更高性能的PLCSIM,所以就没做这方面的测试验证。欢迎有读者参照本文做完实验后,可以再尝试在PLCSIM中验证实现。然后把是否可行的结果告诉我。

电脑上需要的软件:

1,TIA PORTAL V17

2,MODSCAN

3,MODSIM

以下是实验的具体步骤:

步骤1:

PORTAL软件中打开80变频器程序,检查CPU的IP:169.254.1.100

b3bc8394-3417-11ee-9e74-dac502259ad0.png

则设置电脑的网卡的IP为同网段,比如169.254.1.13。

步骤2:

打开程序中的NM_ACS500 (FB32),看到程序中读取变频器的频率和电流分别在4005和4006 。那么我们知道了,如果相应的地址有数据了,并且通讯成功了,PLC程序监控中就会有数值。

b3dc8f22-3417-11ee-9e74-dac502259ad0.png

当然,这部分工作是倒叙的,是在已经有现成的设备块的情况下。而实际应用中,你应该根据所要通讯的设备的数据表来编写相应设备的控制程序。

步骤3:

运行MODSIM,打开MODBUS TCP通讯,并将40005和40006设置为数值自动增长。这里的device ID为1, 代表站地址为1,也可以再新开一个窗口,地址为2,则模拟了地址=2的站。

b3eb39aa-3417-11ee-9e74-dac502259ad0.png

步骤4:

运行MODSCAN来检查从站通讯,设置通讯目标的IP为本机IP,或者127.0.0.1

b403d050-3417-11ee-9e74-dac502259ad0.png

然后可以读取到数值。然后MODSCAN可以关闭不再运行。

b40be574-3417-11ee-9e74-dac502259ad0.png

步骤5:

PLC程序中打开FB36:MTCP_X7v4

程序段3中IP4=13,即电脑的IP。这里是SUBNET=101,如果有更多的网络总线,可以为102,103等等。这个块里最多做了7条线。每条线对应了不同的IP。而工程应用中,同事们已经最多做到了10条,都是在这里简单复制增加。

b441559c-3417-11ee-9e74-dac502259ad0.png

步骤6

设备块(变频器)的实例化调用中,检查调用的SUBNET和站地址对应正确。

b45946ac-3417-11ee-9e74-dac502259ad0.png

我前面给的例子的版本中,忘记了这里的MODBUS TCP通讯的SUBNET是从101开始的,因为原本做的是MODBUS RTU,定义在100以下,是另外一个程序块中实现的。那个时候大量使用的CP ptp模块来实现和RTU的通讯,后来增加了MODBUS TCP网关的方式,库函数中就做了2种方式兼容,再后来基本不再使用PTP模块,而是统一都用网关来转换,就把旧的模块删掉了,而SUBNET的定义还没变。

程序修改下载之后,CPU切换到运行,自动就通讯上了,ABB01站的频率和电流的数据已经有数值了。

b48e872c-3417-11ee-9e74-dac502259ad0.png

而再MODSIM中增加站号2和3的数据模拟,相应的站的数据也会通讯成功读上来。

更进一步,如果增加一台电脑,比如运行虚拟机,通过不同的IP中运行MODSIM的数据仿真,也可以实现更多SUBNET总线的数据通讯。

这些都是可以直接通过组态和简单设置数据实现的。

而实现之后发现,对MODBUS通讯的机理特别是轮询部分丝毫没有涉及,有多少个站就平行调用多少个站的实例。就像PROFINET 的PN站点一样简单。

对MODBUS通讯需要做轮询这一点, 其实只有西门子和三菱等老牌PLC系统里面才需要做。而对于新的CODESYE等环境的平台, 子站都是组态之后就可以直接通讯的,与ETHERCAT, PROFINET并没有多少区别。这应该也是一大半同行对轮询不太感兴趣的原因。因为他们根本用不到啊!

所以倒过来看, 掌握所谓的轮询的技能也并不是行业必备的必杀技。你完全可以不选用这些产品, 以绕过这些难点嘛!比如顶多可以花点钱买个贵一点的PN/MODBUS网关,也可以省掉这些工作量。而实际上,我们开发这一套库函数,也只是因为以前的方案选用的专用的网关产品太贵,工程中反复用到,花费有点多,出于要省一点成本的目的,而另外花出了几个月的时间做的库。

最后对那些白嫖不到却强烈要求开源的同行说一下, 所谓的开源,是建立在各方水平级别相等的基础上的。至少对方开放源代码的代码,自己要能看得懂,理念方法要能认同,要有共同的价值观。最好还要能对方开源的内容有改进有贡献,这种开源才有意义。否则都算不上真正意义的开源。开源从来不是单向输出,也更不是什么道德楷模。

我近几年专门制作了不少例子的源代码供同行学习提高。比如80系列的一些例子,80模拟量的标准答案等,然而收效并不太好,大多数的同行表示从中学到了技能。然而也有不少的声音认为我做的太简单而借此反而嘲笑攻击我。甚至有人在我的帖子下面回复:看到有人骂你我就放心了。

我不知道他放的什么心。我唯一可以让他, 以及让所有同行放心一点的是,只要有一个这样谩骂的声音在,我就不会免费开源。毫无价值,毫无意义。我没有必要去讨好这样的价值观的同行。

审核编辑:汤梓红

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

    关注

    68

    文章

    10824

    浏览量

    211088
  • 接口
    +关注

    关注

    33

    文章

    8486

    浏览量

    150806
  • 变频器
    +关注

    关注

    251

    文章

    6501

    浏览量

    144183
  • MODBUS
    +关注

    关注

    28

    文章

    1759

    浏览量

    76820
  • 通讯
    +关注

    关注

    9

    文章

    892

    浏览量

    34829

原文标题:0806 【万泉河】手把手带小白做MODBUS通讯实验

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

收藏 人收藏

    评论

    相关推荐

    图文教程:手把手教你焊接贴片元件

    图文教程:手把手教你焊接贴片元件,首先来张全部焊接一个点的PCB图
    发表于 04-01 11:03 3.6w次阅读
    图文教程:<b class='flag-5'>手把手</b>教你焊接贴片元件

    手把手教你构建一个完整的工程

    手把手教你构建一个完整的工程
    发表于 08-03 09:54 33次下载
    <b class='flag-5'>手把手</b>教你构建一个完整的工程

    手把手教你写批处理-批处理的介绍

    手把手教你写批处理-批处理的介绍
    发表于 10-25 15:02 69次下载

    美女手把手教你如何装机(中)

    美女手把手教你如何装机(中) 再来是硬碟的部份,这款机壳还不错,可以旋转支架~
    发表于 01-27 11:14 1454次阅读

    美女手把手教你如何装机(下)

    美女手把手教你如何装机(下) 接著下来就是今天的重头戏,开核萝!~
    发表于 01-27 11:16 2915次阅读

    手把手教你学电子书制作

    手把手教你学电子书制作,可以自己DIY电子书
    发表于 09-13 11:26 0次下载

    手把手教你安装Quartus II

    本章手把手把地教你如何安装 Quartus II 软件 ,并将它激活 。此外 还有USB -Blaster下载器的驱动安装步骤 。
    发表于 09-18 14:55 9次下载

    手把手教你在家搭建监控系统

    手把手教你在家搭建监控系统
    发表于 01-17 19:47 25次下载

    手把手教你做电子时钟---前言

    手把手教你做彩铃电子时钟
    发表于 11-14 16:53 11次下载

    手把手教你如何开始DSP编程

    手把手教你如何开始DSP编程。
    发表于 04-09 11:54 12次下载
    <b class='flag-5'>手把手</b>教你如何开始DSP编程

    手把手教你学LabVIEW视觉设计

    手把手教你学LabVIEW视觉设计手把手教你学LabVIEW视觉设计手把手教你学LabVIEW视觉设计手把手教你学LabVIEW视觉设计手把手
    发表于 03-06 01:41 3107次阅读

    手把手教你开关电源PCB排板

    手把手教你开关电源PCB排板(新型电源技术)-分享一下开关电源PCB排板的基本要点及分析,以及例子讲解。绝对的手把手
    发表于 09-18 12:27 57次下载
    <b class='flag-5'>手把手</b>教你开关电源PCB排板

    手把手教你pcb压合的整个流程,小白也能玩转电路板制作

    手把手教你pcb压合的整个流程,小白也能玩转电路板制作
    的头像 发表于 09-18 10:43 3744次阅读

    手把手您使用MCUXpresso Config Tools生成USB组合设备

    手把手您使用MCUXpresso Config Tools生成USB组合设备
    的头像 发表于 10-31 16:55 1104次阅读
    <b class='flag-5'>手把手</b><b class='flag-5'>带</b>您使用MCUXpresso Config Tools生成USB组合设备

    手把手教你学FPGA仿真

    电子发烧友网站提供《手把手教你学FPGA仿真.pdf》资料免费下载
    发表于 10-19 09:17 2次下载
    <b class='flag-5'>手把手</b>教你学FPGA仿真