使用put/get的s7单向通信我已做过很多次,包括西门子各种plc之间的s7通信几乎都是“不费吹灰之力”就通信上了。最近在做s7-300和s7-1200之间的s7通信时,s7-1200做客服机没有问题,s7-1200做服务器怎么也不能传输数据。这可是我在5年以前就做成功过的实验呀!反复折腾了几天,最后还是通过一个朋友知道了原因。原来在step7 v13中组态固件版本v4.0的s7-1200 cpu的属性时,在保护类别的“连接机制”中,需要勾选“允许从远程伙伴(plc、hmi、opc、……)使用put/get通信访问”(见下图)。
通过put/get访问plc的确是一个安全漏洞,黑客可能通过这个漏洞攻击plc系统。s7-1200新增的这个安全功能是很有必要的。但是这是个新生事物,很多用户像我一样,并不知道有这个设置。在双方连接不上时,put/get的状态字列表中也没有有关的信息。
为了使大家在s7-1200做s7通信的服务器时不要重蹈我的覆辙,特发此贴。