嵌入式~PLC-专辑4
只发PLC相关4 随时更新~~ whaosoft aiot http://143ai.com
一、 西门子双机架双CPU之间工业以太网通讯
<一>、建立项目
首先需要建立一项新工程。
<二>、组态硬件
1.本说明组态以SIMATIC 400station为例。在STEP7中创建一个新的项目,分别插入两个S7-400站,打开options菜单下的Set PG/PC Interface选项,将通讯接口改为TCP/IPà本地网卡。
2.对SIMATIC 400(1)站点进行硬件组态
双击SIMATIC 400(1)站的hardware选项,打开硬件组态画面,,双击CP的PN-IO口,填写相应的IP地址和子网掩码,并新组建一个工业以太网Ethernet(1),写入mac地址,IP地址设定为192.168.0.1,子网掩码为255.255.255.0,完成后如下图所示将所要配置的硬件型号抄下,按型号进行硬件组态配置,同时,将MAC地址写入网络配置。如下:
硬件组态完成后的整体画面如下图所示
3.对SIMATIC 400(2)站点进行硬件组态
组态方式与1站相同,将MAC以及IP地址分配好。
注:更改IP地址,防止重复。
最后完成图:
<三>、网络组态
1、同项目下网络组态
在SIMATIC Manager画面下选择
Configure network按钮,打开网络组态画面。NetPro会根据当前的组态情况自动生成网络组态画面。如下:
选择SMATIC 400(1)站的CPU 416-2 DP,右键选择“Insert new connection”,如下图
在弹出的对话框中,显示了可与1站建立连接的站点,选择CPU 416-2 DP站点,同时选择类型为“iso-on-tcp contion”如图所示
将Connection下Type选项内容改为ISO-on-TCP connection:
点Apply后出现如下对话框:
Local Endpoint 下ID选项可以选择任意段,但是要与程序内部编写一致。本文以0001段为例。
对话框中Active connection establishment选项为主从选择,点选后为主站。如果有多个400站,则尽量将主站建立平均,因为主站占用内存比较大,都集中到一台CPU上是容易造成扫描周期变长。同时Block Paramenters选项卡默认为1。
选择SIMATIC 400(2)站中CPU 416-2 DP,在下面Local ID中右键选择属性将Local Endpoint地址改为0002段,步骤如下:
确定,完全编译,分别下装。
2、不同项目下网络组态
双击SIMATIC 400(1)站的hardware选项,打开硬件组态画面,,双击CPU的PN-IO口,填写相应的IP地址和子网掩码,并新组建一个工业以太网Ethernet(1),写入mac地址,以IP地址设定为192.168.0.1,子网掩码为255.255.255.0为例,完成后如下图所示:
硬件组态完成后的整体画面如下图所示:
3.对SIMATIC 400(2)站点进行硬件组态
基本的组态步骤与1站相同,IP地址设定为192.168.0.2,子网掩码255.255.255.0。对准槽号,完成硬件组态后,分别将组态下载到相应的PLC中。
4.进行网络组态,建立相应的S7连接
在SIMATIC Manager画面下选择Configure network按钮,打开网络组态画面。NetPro会根据当前的组态情况自动生成网络组态画面。
选择SMATIC 400(1)站的CPU416-2DP,右键选择“Insert new connection”,如下图:
在弹出的对话框中,显示了可与1站建立连接的站点,选择Unspecified点,同时选择类型为“iso-on-tcp contion”如图所示
点击OK后会出现连接属性的对话框,勾选“establish an active connection”以激活新连接,同时需要记住本地ID号和LADDR号,此号作为后续的通讯模块标识。画面如下图:
同时在弹出的对话框中选择Address标签中Remote标签中写出对方的IP以及ASC。当写出ASC后,hex自动生成,如下:
完成后的NetPro画面如下图:
图中显示了相应建立的连接信息,至此硬件,网络层面的组态完成。分别下载到PLC即可。
<四>、程序编辑
为了进行数据的传送,这里需要调用FC5“AG-SEND”和FC6“AG-RECV”模块,来进行数据的收发。本实验以同项目下2个400站通讯为例。
1.在SIMATIC 400(1)站的Block中按
打开添加如下模块:在OB1中编写数据发送模块,调用FC5模块,并建立DB1、2,分别为CPU1发送给CPU2和CPU1 接收CPU2的数据,并插入变量表为后面的通讯验证做准备。如下图:
打开SIMATIC_NET_CP库:
找到FC5、FC6并复制:
粘贴到400站中,并建立2个DB块,分别为发送和接收使用:
在2个DB块中分别建立相同数量的变量:
2.建立发送接收数据长度设定:
注意:发送接收数据最好分别设计2个MW地址,如果公用,有可能第一个使用完后MW内存储数据被清零。
3.OB1中对FC5的编写如下:
call fc 5 //调用FC5
ACT := M 1.0, //通讯为1时可以发送。
ID :=1, //本机网络组态Block Parameters的ID
LADDR := W#16#3FFD, //本机数据段
SEND := P#db1.dbx0.0 byte 10, //发送数据存储位置
LEN := MW 10, //发送数据长度
DONE := M 10.2, //发送状态(0为正在发送,1为发送完成)
ERROR := M 10.3, //错误状态
STATUS := MW 20; //错误代码
注意:发送接收数据最好分别设计2个MW地址,如果公用,有可能第一个使用完后MW内存储数据被清零。
FC5编辑定义如下:
4.OB1中对FC6的编写如下:
call fc 6 //调用FC6
ID :=1, //本机网络组态Block Parameters的ID
LADDR := W#16#3FFD, //本机数据段
RECV := P#DB2.DBX0.0 BYTE 10, //接收数据存储位置
NDR :=M0.4, //接收状态
ERROR := M0.5, //错误状态
STATUS := MW30, //错误代码
LEN := MW12; //接收数据长度
FC6编辑定义如下:
5.在SIMATIC 400 (2)站中添加相应的模块,ID以及LADDR改为SIMATIC 400 (2)站的ID以及LADDR
6.分别下装到对应CPU中
<五>、效果验证
分别在两个站点的变量表中添加变量,进入监控画面,对1站输入不同的数值,可以看到2站对应的接收区发生了对应的变化,说明以太网通讯成功,效果如下图:
<六>、小结
1.以太网通讯的物理层关键在于IP地址要设定在同一网段内,同时注意子网掩码对网段的影响。这里网段统一在192.168.0.X区间上,保证物理层上的通讯畅通
2.建立连接的过程并不复杂,正确的组态以及IP分配即可。
3.数据的传送可以发送BYTE。基于M区,DB块等,灵活应用不同的传送方式可以实现多种不同的控制方式。
二、 PLC调试步骤
1、模拟量输入(AI)回路调试。要仔细核对I0模块的地址分配;检查回路供电方式 (内供电或外供电)是否与现场仪表相一致;用信号发生器在现场端对每个通道加入信号,通常取0、50%或100%三点进行检查。对有报警、联锁值的AI回路,还要在报警联锁值(如 高报、低报和联锁点以及精度)进行检查,确认有关报警、联锁状态的正确性。
2、模拟量输出(AO)回路调试。可根据回路控制的要求,用手动输出(即直接在控制系 统中设定)的办法检查执行机构(如阀门开度等),通常也取0、50 %或100 %三点进行检查;同时通过闭环控制,检查输出是否满足有关要求。对有报警、联锁值的AO回路,还要在报警联锁值(如高报、低报和联锁点以及精度)进行检查,确认有关报警、联锁状态的正确性。
3、开关量输入(DI)回路调试。在相应的现场端短接或断开,检查开关量输入模块对应 通道地址的发光二极管的变化,同时检查通道的通、断变化。
4、开关量输出(DO)回路调试。可通过PLC系统提供的强制功能对输出点进行检查。通过强制,检查开关量输出模块对应通道地址的发光二极管的变化,同时检查通道的通、断变化。
回路调试注意事项
1、对开关量输入输出回路,要注意保持状态的一致性原则;通常采用正逻辑原则,即当输入输出带电时,为“ON”状态,数据值为“1”;反之,当输入输出失电时,为“OFF”状态,数据值为“0”。这样,便于理解和维护。
2、对负载大的开关量输入输出模块应通过继电器与现场隔离;即现场接点尽量不要直接与输入输出模块连接。
3、使用PLC提供的强制功能时,要注意在测试完毕后,应还原状态;在同一时间内,不应对过多的点进行强制操作,以免损坏模块。
控制逻辑功能调试
控制逻辑功能调试,需会同设计、工艺代表和项目管理人员共同完成。要应用处理器 的测试功能设定输入条件,根据处理器逻辑检查输出状态的变化是否正确,以确认系统的 控制逻辑功能。对所有的联锁回路,应模拟联锁的工艺条件,仔细检查联锁动作的正确性,并做好调试记录和会签确认。
检查工作是对设计控制程序软件进行验收的过程,是调试过程中最复杂、技术要求最高、难度最大的一项工作。特别在有专利技术应用、专用软件等情况下,更加要仔细检查其 控制的正确性,应留有一定的操作裕度,同时保证工艺操作的正常运作以及系统的安全性、可靠性和灵活性。
处理器性能测试
处理器性能测试要按照系统说明书的要求进行,确保系统具有说明书描述的功能且稳 定可靠,包括系统通信、备用电池和其他特殊模块的检查。对有冗余配置的系统必须进行 冗余测试。即对冗余设计的部分进行全面的检查,包括电源冗余、处理器冗余、I 0冗余和 通信冗余等。
(1)电源冗余。切断其中一路电源,系统应能继续正常运行,系统无扰动;被断电的电源加电后能恢复正常。
(2)处理器冗余。切断主处理器电源或切换主处理器的运行开关,热备处理器应能自动成为主处理器,系统运行正常,输出无扰动;被断电的处理器加电后能恢复正常并处于备用状态。
(3)I0冗余。选择互为冗余、地址对应的输入和输出点,输入模块施加相同的输入信号,输出模块连接状态指示仪表。分别通断(或热插拔,如果允许)冗余输入模块和输出模 块,检查其状态是否能保持不变。
(4)通信冗余。可通过切断其中一个通信模块的电源或断开一条网络,检查系统能否 正常通信和运行;复位后,相应的模块状态应自动恢复正常。
冗余测试,要根据设计要求,对一切有冗余设计的模块都进行冗余检查。此外,对系统功能的检查包括系统自检、文件查找、文件编译和下装、维护信息、备份等功能。对较为复杂的PLC系统,系统功能检查还包括逻辑图组态、回路组态和特殊I0功能等内容。
三、 多家品牌PLC元件编号和Modbus编号地址对应表
20种PLC输入、输出和寄存器元件与Modbus编号地址对应表分享出来,内容涵盖以下PLC
三菱FX3G-40MR/ES-A、西门子S7-200 CPU226 AC/DC/RLY、欧姆龙CP1H-X40DR-A、松下AFPX-C40R、台达DVP-12SA2、信捷XC5-48、永宏FBs-40MC、产电XBC-DR40S、汇川H2u-2416MT-XP、英威腾IVC2H-1616MAT6、基恩士KV-N40AR、施耐德电气TM218LDAE40DRPHN、海为H40S2R系列、维控LX3V1212MT系列、和利时LE5109、台安AP-340BR-A、罗克韦尔1766-L32BWA、合信CTH200系列CPU H226L、富士SPE NW0P40R-31、步科K508-40AR。
三菱
X元件支持Modbus之02功能码;
Y元件支持Modbus之01、05、15功能码;
D元件支持Modbus之03、06、16功能码。
西门子
I元件支持Modbus之02功能码;
Q元件支持Modbus之01、05、15功能码;
V元件支持Modbus之03、06、16功能码。
欧姆龙
CIO0元件支持Modbus之02功能码;
CIO100元件支持Modbus之01、05、15功能码;
D元件支持Modbus之03、06、16功能码。
松下
X元件支持Modbus之02功能码;
Y元件支持Modbus之01、05、15功能码;
DT元件支持Modbus之03、06、16功能码。
台达
X元件支持Modbus之02功能码;
Y元件支持Modbus之01、05、15功能码;
D元件支持Modbus之03、06、16功能码。
信捷
X元件支持Modbus之02功能码;
Y元件支持Modbus之01、05、15功能码;
D元件支持Modbus之03、06、16功能码。
永宏
X元件支持Modbus之02功能码;
Y元件支持Modbus之01、05、15功能码;
D元件支持Modbus之03、06、16功能码。
产电
P0元件支持Modbus之02功能码;
P40元件支持Modbus之01、05、15功能码;
D元件支持Modbus之03、06、16功能码。
汇川
X元件支持Modbus之02功能码;
Y元件支持Modbus之01、05、15功能码;
D元件支持Modbus之03、06、16功能码。
英威腾
X元件支持Modbus之02功能码;
Y元件支持Modbus之01、05、15功能码;
D元件支持Modbus之03、06、16功能码。
基恩士
R0元件支持Modbus之02功能码;
R500元件支持Modbus之01、05、15功能码;
DM元件支持Modbus之03、06、16功能码。
施耐德电气
更新固件后支持01、02、15功能码
I元件支持Modbus之02功能码;
Q元件支持Modbus之01、15功能码;
M元件支持Modbus之03、06、16功能码。
海为
X元件支持Modbus之02功能码;
Y元件支持Modbus之01、05、15功能码;
D元件支持Modbus之03、06、16功能码。
维控
X元件支持Modbus之02功能码;
Y元件支持Modbus之01、05、15功能码;
D元件支持Modbus之03、06、16功能码。
和利时
I元件支持Modbus之02功能码;
Q元件支持Modbus之01、05、15功能码;
M元件支持Modbus之03、06、16功能码。
台安
X元件支持Modbus之02功能码;
Y元件支持Modbus之01、05、15功能码;
D元件支持Modbus之03、06、16功能码。
罗克韦尔
I元件支持Modbus之02功能码;
Q元件支持Modbus之01、05、15功能码;
N元件支持Modbus之03、06、16功能码。
合信
I元件支持Modbus之02功能码;
Q元件支持Modbus之01、05、15功能码;
V元件支持Modbus之03、06、16功能码。
富士
(无协议编程实现)
X元件支持Modbus之02功能码;
Y元件支持Modbus之01、15功能码;
D元件支持Modbus之03、16功能码。
步科
I元件支持Modbus之02功能码;
Q元件支持Modbus之01、05、15功能码;
V元件支持Modbus之03、06、16功能码。
嵌入式~PLC-专辑4相关推荐
- 嵌入式~PCB专辑3
只发PCB相关3 随时更新~~ whaosoft aiot http://143ai.com 电路相关都扔这 一.常用的电路保护器件 电子电路很容易在过压.过流.浪涌等情况发生的时候损坏,随着技 ...
- 嵌入式~PCB专辑8
只发PCB电路相关8 随时更新~~ whaosoft aiot http://143ai.com 一. 差分运算放大电路,对共模信号得到有效抑制,而只对差分信号进行放大,因而得到广泛的应用. ...
- 嵌入式~PCB专辑2
只发PCB相关2 随时更新~~ whaosoft aiot http://143ai.com 一.详解PCB走线与信号完整性 高速信号的PCB走线 现在但凡打开SoC原厂的PCB Layout ...
- 科维PLC运行时系统ProConOS embedded CLR 2.2 特定应用
ProConOS embedded CLR是新型的开放式标准化PLC运行时系统,符合IEC 61131标准,可执行不同的自动化任务(PLC.PAC.运动控制.CNC.机器人和传感器). 通过采用国际标 ...
- 学习嵌入式Linux,做底层还是应用?底层要掌握哪些技能?
关注.星标公众号,直达精彩内容 ID:技术让梦想更伟大 整理:李肖遥 很多学习嵌入式的新人.工程师,在学习到半途中,总会感觉到迷茫,不知道自己从哪方面入手.进阶,也不知道自己目前处于学习的哪个层次,不 ...
- 【深度】 到底什么是嵌入式系统?
关注.星标公众号,直达精彩内容 ID:技术让梦想更伟大 作者:裸机思维 整理:李肖遥 [说在前面的话] 作为一个以"思维"为内容的讨论,我并不惧怕话题的庞大.毕竟思维并不是什么可以 ...
- 嵌入式开发要难于单片机开发?
关注.星标公众号,直达精彩内容 ID:技术让梦想更伟大 来源:网络素材 单片机和嵌入式,其实没有什么标准的定义来区分他们,对于进行过单片机和嵌入式开发的开发者来说,都有他们自己的定义,接下来,就谈谈本 ...
- 作为面试官,我是如何面试嵌入式工程师的?
关注.星标公众号,直达精彩内容 来源:网络素材 作者:王科岩 提起面试大家都不会陌生,我们有时是参加面试,有时也需要面试别人,那么什么样的面试是一次高效有价值的面试呢?我在最近2年的面试中总结了以下几 ...
- (转)智能制造大环境下PLC的发展趋势和路径
在过去的十年中,PLC市场在经受了前些年显著的下降之后,目前又呈现强势反弹,估计到2018年市场将达到148.5亿美元,比前五年增长40%.令人感到兴奋的是,中小型PLC将在市场增长中起着至关重要的作 ...
- 揭秘PLC(四)RTS之服务篇
继续揭秘PLC,今天我们聊聊RTS的服务.服务有很多种,其最主要的任务是给用户提供调试接口的,相当于MCU的JTAG功能.Codesys有个比较实用的功能,代码编译好后,可以不连PLC实物直接在电脑端 ...
最新文章
- python对象_查找Python对象具有的方法
- 本地方法(JNI)——访问数组元素+错误处理
- java 过滤xss脚本_Java Web应用程序的反跨站点脚本(XSS)过滤器
- (王道408考研数据结构)第六章图-第四节3:最短路径之BFS算法(思想、代码、演示、答题规范)
- 2020-01-14 IP/TCP/UDP 对应的RFC编号
- 关于Cocos2d-x中实例伸缩后的位置设置
- win7怎么把计算机图标下的箭头掉,Win7桌面图标有小箭头怎么去掉?Win7去除桌面图标小箭头的方法...
- 基于TI CC2540汽车检测蓝牙4.0 BLE方案
- 【算法小结】Mex,SG,集合-Nim游戏模型
- JAVA自学-day14-正则表达式、Math类、Random类、System、BigInteger、BigDecimal、Date/DateFormat、Calendar
- python代码实现中心化_python基于物品协同过滤算法实现代码
- 困扰所有SAP顾问多年的问题终于解决了
- 基于Vue.js模拟酒店预订移动App
- 编写java的软件——Myeclipse,以及反编译的用法.
- 对比学习(Contrastive Learning)中的损失函数
- Qt扫盲-QList使用总结
- 遭遇Win32.Loader.c,Trojan.PSW.Win32.GameOnline,Trojan.PSW.Win32.AskTao等2
- linux下boost编译安装全过程脚本塈bzip2编译安装全过程脚本
- 童年记忆中的零食商品
- 自建dns代理服务器,自建DNS服务器使用二级域名转发内网服务器(示例代码)
热门文章
- Linux userdel
- python集合运算_python集合的运算(交集、并集、差集、补集)
- 如何在php中定义按钮,ppt中怎么插入自定义动作按钮
- 物理学四大神兽--拉普拉斯兽
- 魅蓝s6手机sim卡不显示无服务器,魅蓝S6图赏:拥有家族式设计风格的全面屏
- 交流电压标准:110V与220V
- Maven报错:Non-resolvable parent POM for XXX
- 我学习到的一些保险知识
- Word控件Spire.Doc 【页眉页脚】教程(7): 添加不同的首页页眉和页脚
- linux卸载压缩包命令,linux 安装rar 卸载