PLC外挂远程IO采用S7和PN通信的方法和注意事项

由于200smart系列在通信和其他功能上看齐1200系列,且价格有不少优势,导致出现cpu采用1200系列,IO用200smart这种架构,这在追求性价比的设备上超级常见。我也做过不少这样架构的设备,更有甚者,直接在200smart上挂另1个200smart来扩展IO。西门子见到市场上这样的行为,于是自己就推出了IM60模块,直接顶替原来用ST60做远程IO,更具性价比,能够在博图直接组态200smart系列的扩展模块,也不用在200PLC上写通信映射程序。一些项目还是会用ST20等点数少的PLC来扩展IO,且可能采用S7通信的方式,下面来分析下采用S7通信和PN通信的区别。

S7通信也叫Get/Put,无论在200smart还是在1200系列,配置都相当简单。我总结下1200和200之间S7通信的几种情况下的方式。

1、1200作为主站,200smart从站。在1200组态上添加S7连接,然后,程序上分别调用GET PUT指令,关于指令的具体接口用法F1即可。我之前写过S7通信多组GET/PUT是否需要轮询和通信数据量的文章,有兴趣的可以翻翻看,这里不再赘述。200smart侧,不需要任何配置或者程序,只用准备好交换的数据区间。

2、1200作为从站,200smart作为主站。1200侧勾选允许getput,将DB1设置为非优化访问,并准备通信交互的数据区间,由于1200和200之间通信只能走非优化的DB1。200smart侧在工具向导的getput上添加配置,添加2个,分别get,从1200读取,put,写入1200。

简而言之,1200主站时,添加S7连接,调用指令,从站时,只需要勾选getput。200smart主站时配置向导getput,从站时不需要任何配置或程序。这相比PN通信显然是要方便快捷的,PN通信分作为控制器和IO,都要配置PLC,导出GSD,安装GSD,无论在200还是1200都是一样的方法,具体查看F1有详细步骤。

S7除了配置和程序上比PN更加方便简洁且支持单边配置的通信外,还有以下的一些区别。

1、在通信性能上,S7是不如PN通信的,一般S7通信在几十毫秒到100+毫秒,PN通信在个位数毫秒。其次,PN通信是对输入输出IO的读写通信,而S7是对PLC寄存器的读写通信,这是它们之间的根本区别。在1200上调用getput指令时,指令的触发是沿信号,一般简单写的时候触发用的时钟信号如”Clock_10Hz”,即100ms间隔读写1次数据,要求高的情况下最好用指令的完成信号来触发,这样才能把实时性提到最高。

2、S7通信时,是对数据的V区进行读写,当通信中断时,不再对这个V区操作,寄存器会保持通信中断之前的状态,如果V区映射到输出时,那么通信中断后输出会一直保持,且无法断开,这是超级危险的情况。PN通信时,是对输入输出的读写,通信中断时,输入输出即变成0,不会出现S7那样的保持问题。

3、PN通信和S7通信的诊断不同,PN通信基本等同于CPU的扩展模块,在通信出现异常时,直接查看cpu的诊断缓冲区,和扩展模块一样可以看到诊断信息,属于系统级诊断信息,而S7的通信诊断在调用的指令里,和modbus通信类似。如果想在程序中用变量显示PN报警的状态,1200和200分别有以下方式。

PLC外挂远程IO采用S7和PN通信的方法和注意事项

PLC外挂远程IO采用S7和PN通信的方法和注意事项

1200有专用指令modulestates,简单点可以用state[1]显示站通信,详细F1查看指令定义。200的PN状态显示有特殊寄存器,直接使用就可以,分作为控制器和IO的两种,一般用作为控制器时的SMB1800是否值为16#80 来诊断状态。程序使用这个诊断可以方便把报警做到HMI上,或者写一些通信中断后的处理程序,避免通信中断时,程序的异常。

4、PN通信虽然和CPU自身的扩展模块通信超级近似,但有1个点是需要额外注意的,就是使用上电第一个循环读取数据即FirstScan SM0.1时,PN模块上的IO会显示0。如下的测试,用2个200组PN通信,将2个PLC的输入都强制的情况下,上电第一个循环,本体CPU上的I点能读到1,PN IO上的输入点读的是0。在1200PLC上测试的效果也是这样,应该是建立PN通信需要一点时间,上电初始时未连接完成所致。所以即使是PN通信的远程IO在写上电第一个循环程序时要特别注意这个问题,PN IO不是完全等同本体IO的。

PLC外挂远程IO采用S7和PN通信的方法和注意事项

5、S7通信会出现通信中断后数据保持的问题,那么只要用到S7通信提议都要写通信异常检测程序,可以用指令自带的异常检测来诊断,也可以发心跳信号这种以结果来诊断。一般通信双方互发1个1HZ的时钟信号,如果这个信号一直常通或常断就判断为通信中断,通信中断后对相关信号进行复位处理。如下是S7通信中断的检测。

PLC外挂远程IO采用S7和PN通信的方法和注意事项

PN通信和DP通信一脉相承,属于西门子内部的高性能高实时总线通信协议,在要求高的场合都应该优先使用。西门子的仿真软件plcsim advanced仿真通信时,无法仿真PN通信,但诸如S7通信,modbustcp,开放式tcp等都是支持的。应该是PN通信需要有专门硬件支持,不仅仅是软件解决方案,这也是目前市场上支持PN通信的设备都更贵的缘由。

对于要求不高的场合,只是数据采集的场合,只能单边配置的场合,优先使用S7通信会简单许多。这两种通信都是西门子自家的内部通信协议,并不是开源通用协议,所以一般都是西门子自家产品之间通信使用。不过S7通信协议早有三方破解,所以在上位机和西门子PLC通信上广泛使用,典型的在C# 上的S7NetPlus库使用超级成熟和广泛。

© 版权声明

相关文章

1 条评论

您必须登录才能参与评论!
立即登录
  • 头像
    绝育结扎大蟑螂 读者

    收藏了,感谢分享

    无记录