浔之漫智控技术(上海)有限公司
西门子PLC模块 , CPU模块 , DP通讯电缆 , 6GK交换机
辽源地区西门子模块总代理商

辽源地区西门子模块总代理商

前言

近西门子PLC价格大幅上调,在工控界引起了不小的风波,不仅涨价,甚至还缺货,导致很多人不得不更改方案。听说近已经完成了芯片替换,希望不久能够恢复供货,并把价格回调。

通过这件事,从侧面可以看出,西门子在工控领域的市场占有率很大,那么对于上位机开发人员来说,使用西门子PLC作为下位机,我们应该如何与之进行通信呢?

西门子PLC支持很多种通信协议,主要分为两种,一种是串口通信,一种是以太网通信,同时也可以通过OPC实现数据通信。

串口通信

西门子PLC支持串口通信,在S7-200和S7-200Smart中,都直接集成了串口,但是从S7-1200到S7-1500,慢慢都取消掉了,如果需要,可以通过扩展模块的方式来增加,出现这种现象的原因,其实也是工业发展的必然结果。串口通信的优势在于简单、成本低,但是劣势也非常明显,就是传输效率低。西门子早期的串口通信主要是Profibus DP通信,但是上位机是无法直接与西门子PLC走Profibus DP通信的,因此,西门子PLC常用的串口通信方案如下所示:

PPI通信:PPI通信只针对S7-200和S7-200 Smart系列PLC,其他型号不支持。ModbusRTU主站:西门子PLC对Modbus协议支持还是比较不错的,这里是指PLC做Slave(即从站),上位机做Master(即主站)。ModbusRTU从站:这里是指PLC做Master(即主站),上位机做Slave(即从站)。以太网通信

西门子PLC通信还是以太网通信为主,我们常说的西门子通信协议分别是S7协议和Profinet协议,但是Profinet是一种总线协议,目前,C#是无法直接与西门子PLC走Profinet通信的。因此,西门子PLC常用的以太网通信方案如下所示:

S7通信:基本上从S7-200到S7-1500均可以实现,这里有很多可以选择的开源或商业库,包括、pronodave、libnodave、sharp7,也可以自己封装通信库。ModbusTCP Server:这里是指PLC做Server(即服务器),上位机做Client(即客户端)。ModbusTCP Client:这里是指PLC做Client(即客户端),上位机做Server(即服务器)。OpenProtocol Server:这里是指开放式TCP通信,PLC做TCPServer(即服务器),上位机做TCPClient(即客户端)。OpenProtocol Client:这里是指PLC做TCPClient(即客户端),上位机做TCPServer(即服务器)。OPC通信

OPC通信是工业控制中常用的一种通信方式,主要在于OPC软件的选择以及OPCDA、OPCUA的选择,因此,西门子PLC常用的OPC通信方案如下所示:

PC Access系列:西门子针对S7-200开发PC-Access软件,针对S7-200 Smart又提供了PC-Access Smart软件,可以直接通过这些软件实现OPCDA通信。Simatic Net 系列OPCDA:Simatic Net是西门子主推的OPC软件,支持西门子全系列,这里主要是OPCDA通信方式。Simatic Net 系列OPCUA:新版的Simatic Net也开始支持OPCUA,这里主要是OPCUA通信方式。KepServer 系列OPCDA:KepServer同样作为一款商业OPC软件,在国内使用率非常高,同样也支持西门子全系列,这里主要是OPCDA通信方式。Simatic Net 系列OPCUA:新版的KepServer也开始支持OPCUA,这里主要是OPCUA通信方式。S7通信协议

在以上众多的通信方式和通信协议中,就目前而言,使用S7通信是方便,也是应该广泛的,那么S7协议相对于其他协议来说,有哪些优势呢?

使用S7通信协议大的优势在于不需要编写PLC程序,而且S7协议在底层做了很强的封装,在上位机通信应用中相比其他通信协议来说,也有很大的优势。

虽然不需要编写PLC程序,但仍然需要做一些简单的配置:

开启Put/Get

PLC侧需要设置勾选允许来自远程对象的Put/Get通信访问 对于西门子1200/1500系列,必须要勾选允许Put/Get访问,对于200Smart/300/400,则不需要。

DB块去除优化访问

对于基于博图开发S7-1200/1500的项目,如果要与DB块数据通信,需要要去除DB的优化的块访问,对于200Smart/300/400,则不需要。如果希望通过标签通信,可以采用OPCUA。

务必保证通信地址是有效地址

因为PLC大多数是基于存储区的,每个地址肯定是隶属于某个存储区,大家都知道西门子PLC自带的存储区有I区、Q区、M区、T区、C区,但是对于常用的DB存储区是没有的,需要自己去创建,也就意味着,如果你要读取DB地址,必须要提前创建好DB存储区,除此以外,DB存储区创建之后,默认是没有字节的,需要自己一个个添加变量,才能形成有效存储区,因此一个DB存储区的范围是有限并且可见的(可以通过偏移量看出来)。

S7协议之布尔操作

对于布尔操作,很多协议都有,但是这里的布尔操作是指寄存器布尔,比如DB100.DBX0.0,很多时候,我们都是通过先读取DB100.DBB0的值,再通过位运算结果,写入到DB100.DBB0中,实现DB100.DBX0.0的操作,但是这种方式有弊端,

:每次操作一个布尔值都需要与PLC进行两次数据交互。

第二:安全性和稳定性无法保障,你不知道在你读取和写入之间,这个字节的值是否已经发生了改变。

这样的问题也存在于Modbus协议的寄存器位操作,如40001.05,三菱、欧姆龙的寄存器位操作,如D100.06、W12.04,给上位机开发者带来很多苦恼。

但是S7协议支持直接位操作,有专门的报文指令实现这样的功能。

S7协议之PDU读取

大部分人都知道S7协议一次性读取有限制,但是具体是多少?怎么计算出来的?

S7协议的一次性读取长度是根据PDU计算出来的,这个PDU的值是来自于PLC本身,不同型号的CPU,它的PDU是不一样的,可以参考下面两张图:

西门子PLC的PDU大小是和CPU息息相关的,一般会有240、480、960三个档次,知道PDU之后,那么一次性读取的字节长度,就是在PDU的基础上减去18,这个18是指包头包尾会有18个字节,这样我们就知道了一般的PLC,一次性能读取222个字节(240-18=222),但是对于S7-1516这样的PLC,我们一次性是可以读取942个字节的(960-18=942),这个一次性能读取的字节越长,越能提高上位机的通信效率。

刚刚的方式是通过KepServer测试的,实际开发过程中,该怎么获取CPU的PDU呢,实际上在建立连接的第二次握手时,返回的报文中就包含PDU的值。

第二次握手返回的报文长度是27个字节,后两个字节就是PDU的值,上图展示的是S7-1200PLC返回的报文,0和240的组合即为240。

1、PLC的安装

 

  PLC适用于大多数工业现场,但它对使用场合、环境温度等还是有一定要求。控制PLC的工作环境,可以有效地提高它的工作效率和寿命。在安装PLC时,要避开下列场所:

   (1)环境温度超过0 ~ 50℃的范围

   (2)相对湿度超过85%或者存在露水凝聚(由温度突变或其他因素所引起的);

   (3)太阳光直接照射;

   (4)有腐蚀和易燃的气体

   (5)有打量铁屑及灰尘;

   (6)频繁或连续的振动,振动频率为10 ~ 55Hz、幅度为0.5mm(峰-峰);

   (7)超过10g(重力加速度)的冲击。

SIMATIC PCS 7 的块库

过程库 (APL) – 适用于 PCS 7 的 SIMOCODE pro 块库的控制与测量数据的面板和块

通过 PCS 7 块库(例如,用于 SIMOCODE、软起动器和 AS-Interface),相应设备可方便地安装到 SIMATIC PCS 7 过程控制系统中。PCS 7 块库包含与 SIMATIC PCS 7 的诊断和驱动方案相应的诊断和驱动块以及操作员控制和监视所需的元素(符号和面板)。

交付形式和许可证

通过 CD-ROM 或作为许可证/软件下载提供的 PCS 7 块库,用户可以在工程师站上运行所需的工程软件(单一许可证),包括用于在自动化系统中执行 AS 块的运行版软件(单一许可证)。如果 AS 块将用于额外的自动化系统中,则需要运行时间许可证的相应数量,提供时无数据载体。

安全注意事项

为了保护工厂、系统、机器和网络以防受到网络威胁,必须实施并持续保持全面、先进的工业安全概念。西门子的产品和解决方案只是这种方案的一个组成部分。


展开全文
优质商家推荐 拨打电话