西门子6ES350-1AH03-0AE0
1、分布式i/o的引入
组建自动化系统时,通常需要将过程的输入和输出集中集成到该自动化系统中。如果输入和输出远离可编程控制器,将需要铺设很长的电缆,从而不易实现,并且可能因为电磁干扰而使得可靠性降低。
分布式 i/o 设备便是这类系统的理想解决方案,即控制 cpu 位于中央位置,而i/o设备(输入和输出)在本地分布式运行,通过功能强大的 profibus dp 的高速数据传输能力,可以确保控制 cpu 和 i/o设备稳定顺畅地进行通讯。
2、profibus-dp与分布式i/o
dp 主站是控制 cpu 和分布式 i/o 之间的连接链接。dp 主站通过 profibus dp 与分布式 i/o 交换数据并监视profibus dp。分布式 i/o(即 dp 从站)负责在现场准备编码器和执行器数据,使得数据可以通过profibus dp发送至控制cpu。
3、et200系列分布式i/o
无论控制系统多么复杂,西门子et200分布式i/o可以给用户带来一个选择。et200是一种基于开放式profibus总线,并可实现从现场信号到控制室的数据通讯的远程分布式输入输出结构。它可以给用户带来许多好处,如降低接线成本、**数据安全性、增加系统灵活性等等。如图1所示是et200在自动化项目中的典型应用。
图1 et200在自动化项目中的典型应用
(1)et 200cn im177
et 200cn im177 是全新的profibus dp接口模块,带有集成的数字量输入/输出通道和profibusdp快速连接接头以及24vdc 400ma供电,可以扩展多6个s7-200小型的数字量及模拟量扩展模块。
它的网络连接速度高达1.5m,并能完全在step 7下实现硬件组态、编程及在线诊断。
图2所示是et 200cnim177在总线配置中的一个实例,作为分布式i/o设备,它是分布式外设系统中的一个dp从站,可以将现场传感器或执行器的数据通过profibus-dp总线传送到dp主站的s7-300cpu。
图2 et 200cn im177的总线配置
(2)et 200pro
et200pro是防护等级ip65以上的一款分布式i/o,大可扩展16个模块或128点,模块与连接模块均支持热插拔,支持profibus以及profinet,可以连接电机启动器、变频模块、moby识别等功能模块,提供故障安全型模块,并可与标准模块混合使用,安全等级达到4 类/ sil3 安全要求,使系统更具可用性,如图3所示。
图3 et 200pro外观示意
(3)et 200s
simatic et200s是一种可分拆为单个组件而设计的分布式i/o,它由以下部分组成:输入和输出模块、智能模块、任何三相电源用电设备的负载馈电器。品种规格齐全、组态及编程的一致性使et200s成为应用广泛深入的通用i/o系统,在频繁要求改变的场合,通过交换和组合各种i/o模块,可显著地缩短设备的建立时间和降低费用。
et 200s可以在step7中配置称直接通讯方式,这是一种特殊的dp从站之间的关系,它的特点就是能够获取其他dp从站发送到主站的具体内容。
(4)et 200m
simatic et 200m分布式 i/o 设备是具有 ip 20 防护等级的模块化 dp 从站。et 200m 具有 s7-300自动化系统的组态技术,如图4所示,它由一个 im 153-x 和多个 s7-300 的 i/o模块组成。
①电源模块 ps 307;② 接口模块 im 153-x;③ 多 8 个 i/o 模块(sm/fm/cp)
图4 et 200m 分布式 i/o 设备的组态实例
(5)其他et 200
除了以上et200外,还有其他分布式i/o,包括:
◆et 200is是本质安全系统,适用于有爆炸危险的区域。
◆et 200x是ip65/67 的分布式i/o,相当于cpu 314,可用于有粉末和水流喷溅的场合。
◆et 200eco 是经济实用的i/o,ip67。
◆et 200r 适用于机器人,能抗焊接火花的飞溅。
◆et 200l 是小巧经济的分布式i/o,像明信片大小的i/o 模块。
◆et 200b是整体式的一体化分布式i/o。
通过gprs实现组态软件与的modbus通讯,实现无线远距离通讯。
plc采用s7-1200 1212c cpu和cm1241 rs485通讯模块
宏电h7710sgs 485接口 gprs dtu模块,组态软件为紫金桥
对于宏电h7710 的工作原理,是把采集数据的s71200经rs485串口连接到gprs模块上,之后通过模块上的sim卡的网络,走**连接到internet网中的一个固定ip地址的数据中心server,中心站采用紫金桥实时数据库.
cm1241接口的3和8为rs485通讯正负极,对应连接h7710的3和2端子
这个系统里plc作为从站使用,组态软件为主站。
plc ob1 里始终调用mb_slave块 ,mb_addr 为从站地址,mb_hold_reg 为指向 modbus保持寄存器数据块的指针。
在mb_hold_reg指定的数据块db4中建立要发送的数据
mb_comm_load块 用于组态端口使用 modbus rtu 协议来通信,在ob100里调用一次即可。port 端口号,baud波特率,parity 校验方式,mb_db mb_slave指令的背景数据块的引用。在程序中插入mb_slave之后,数据块标识符会显示在 mb_db 框连接的下拉列表中。
通过以上指令从站plc程序部分基本完成,具备通讯条件。
再简单描述一下上位机设置。
在紫金桥组态软件设备组态中配置所连接的从站设备1200。选择modbus串行通讯,数据读取周期时间设5秒,输入正确plc通讯地址,设置串口通讯格式,配置gprs设备h7710,dtu标识输入手机卡的电话号码。
h7710的具体设置这里就不详细叙述了,不是本文重点。
在紫金桥组态软件点组态中添加mb_hold_reg指定的数据块db4中的数据,这样在组态画面就可以读取从站的数据了。
这个案例主要用于实现无线远距离数据采集.
有错误不足之处欢迎指正吐槽。
背景:
我们现在做锅炉节能控制,都是在原有的控制系统上加上西门子的控制器,把我们的算法写在西门子控制器中,通过通讯的方式读取第三方系统的数据运算后把控制指令再发回去。因为第三方系统使用的系统不同,目前比较多的如abb,施耐德,ge,上海新华,和利时,浙大中控等,为了实现和这些系统做的控制系统,就要有一个比较合理的通讯方式,目前采用的是opc方式通讯。
目前采用的通讯方式:
目前采用opc方式,锅炉也是采用母管制的,要把整个母管中链接的锅炉的数据都采集过来才好,这样数据两比较大,在大量数据交换的情况下,速度比较好。我们现在在向大型锅炉控制上转型,大型锅炉都是一炉一机的,针对我们的现在的要求不太合适,我们的特点是需要交换的数据量小多两三百点,要求速度快。我们目前的通讯方式是用pc和第三方系统通讯pc和通讯,pc中用wincc把读取到的数据转写到plc的变量中,wincc中如果脚本执行的速度过快,则影响到wincc的其他的功能,目前快也就是1s的周期。
目前的技术需求:
而针对一炉一机这种数据量小,要求速度快的通讯特点,modbus通讯方式更合适,modbus是比较早的通讯协议,大多数的智能仪表都支持,控制系统也都支持,不存在无法通讯的难点。为了实现这个通讯,我于2014年的年底在江苏阜宁澳洋热电厂做了测试。
项目硬件需求:
江苏阜宁澳洋热电厂采用的是和利时的控制系统,因为我们的控制思路是在原有控制系统基础上做的程序,硬件中不包含io模块采用西门子ps407,400控制器以及cp441通讯模块。网上采购232通讯接头,自制232通讯线。
硬件组态:
硬件组态很简单,只要按照说明资料一步步操作就可以了,这里没有什么好说的。
遇到的问题:
1、接线。网上搜索到的232接线图:
按照这个接线图连接后无法通讯,后来我考虑到modbus的通讯需要告诉对方是否准备还收发数据以及是否收发结束,应该状态也发给对方才行,把上面的接线图改成:
实现了硬件连接,可以通讯了。
2、通讯格式设置:
大家都知道西门子的数据存储格式和其他的公司有点不一样,西门子是低字高位,其他公司大多数都是采用的高字高位,如果只是传输字节的话,两者是没有区别的,如果用modbus传输32位的数据就需要注意这个问题了,因为modbus只是原封不动的把药传输的32位地址的数据传过去,具体这些位中式什么它不管的,如果没有注意到这个高低位的问题,很有可能你都不知道传过去的是什么。对方能够实现换位功能,则只要采用4321的数据格式就行了,否则就要我们手动把需要传输的数据在传输前或者接收后进行换位操作。次使用没有注意这个问题,通讯后的数据全变了,后来换位后正常了。
3、处理:
在实际测试使用过程中处理了前面说的问题后,又遇到了新的问题。实数,整数都能正确通讯,只有bool量无法通讯,只要增加bool量,则第三方系统报错,通讯中断,咨询技术服务人员也没有解决问题,后来我想既然整数能够正确处理,那么我就把bool量打包成字节按整数传输,这样还省了需要传输的变量数,只是双方都需要编程,发送bool量方打包数据把8个bool量转换成一个字节的整数,接收方再把这个整数分解成8个bool量。
通过以上的处理,终于实现的西门子400控制器通过modbus与和利时dcs系统的通讯。