西门子PLC价格大幅上调,,,,在工控界引起了不小的风波,,不仅涨价,,甚至还缺货,,导致很多人不得不更改方案。。。对于尊龙时凯ABB机器人来说也是如此。。。。
通过这件事,,从侧面可以看出,,,,西门子在工控领域的市场占有率很大,,,那么对于上位机开发人员来说,,,使用西门子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均可以实现,,,,这里有很多可以选择的开源或商业库,,包括http://s7.net、、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存储区的范围是有限并且可见的(可以通过偏移量看出来)
了解更多ABB机器人
文章来源网络,,,,如有侵权请联系删除