使用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通信的服务器时不要重蹈我的覆辙,特发此贴。