技术论坛

 【分享】小心!S7-1200的S7通信有地雷!

返回主题列表
作者 主题
Automann
至圣

经验值:18299
发帖数:6168
精华帖:137
楼主    2015-08-10 14:32:16
主题:【分享】小心!S7-1200的S7通信有地雷! 精华帖 

使用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客服机的PLC的PUT/GET的状态字列表中增加有关的内容。在新版的《S7-1200 Easy Plus》的S7通信例子中,最好也能介绍这个设置。

为了使大家在S7-1200做S7通信的服务器时不要重蹈我的覆辙,特发此贴。

追求完美
好吗?
侠客

经验值:697
发帖数:103
精华帖:1
1楼    2015-08-10 16:42:18
精华帖  主题:回复:【分享】小心!S7-1200的S7通信有地雷!

 GET 和 PUT(从远程 CPU 读写)指令


可以使用 GET 和 PUT 指令通过 PROFINET 和 PROFIBUS 连接与 S7 CPU 通信。 仅当在本地 CPU 属性的“保护”(Protection) 属性中为伙伴 CPU 激活了“允许使用 PUT/GET 通信进行访问”(Permit access with PUT/GET communication) 功能后,才可进行此操作:

访问远程 CPU 中的数据: S7-1200 CPU 在 ADDR_x 输入字段中只能使用绝对地址对远程 CPU (S7-200/300/400/1200) 的变量寻址。

访问标准 DB 中的数据: S7-1200 CPU 在 ADDR_x 输入字段中只能使用绝对地址对远程 S7 CPU 标准 DB 中的 DB 变量寻址。

访问优化 DB 中的数据: S7-1200 CPU 不能访问远程 S7-1200 CPU 的优化 DB 中的 DB 变量。

访问本地 CPU 中的数据: S7-1200 CPU 可使用绝对地址或符号地址分别作为 GET 或 PUT 指令的 RD_x 或 SD_x 输入字段的输入。

 

提示

V4.0 CPU 程序 GET/PUT 操作不会自动启用

V3.0 CPU 程序 GET/PUT 操作在 V4.0 CPU 中会自动启用。

不过,V4.0 CPU 中 V4.0 CPU 程序 GET/PUT 操作不会自动启用。 要启用 GET/PUT 访问,必须转到 CPU“设备组态”(evice configuration),打开巡视窗口,选择“属性”(Properties) 选项卡下的“保护”(Protection) 属性。

您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。