使用 sfb104 “ip_conf”,可以在程序中配置cpu的集成 profinet 接口, 初的组态将被 step 7 程序覆盖。可以配置接口的如下参数:
- ip 参数: ip 地址, 子网掩码和网关地址
- profinet io 设备名
带集成profinet接口的s7- 300 cpu, im154-8 cpu 和 im 151-8 pn/dp cpu 从v3.2版本开始支持sfb14 "ip_conf" 功能。 带集成profinet接口 的s7-400 cpu 从v6.0版本开始支持 sfb104 "ip_conf" 功能。
实现步骤
在硬件组态中明确指定使用不同的方法配置ip参数而不是通过硬件组态,如图1,图2。
图01
图02
如图3,下载硬件组态后,如果是第一次下载或者是恢复了出厂设置,plc ip地址为“ 0.0.0.0 ” 设备名称为空;如果之前分配过 ip 地址和设备名,则保持之前的参数。
图03
在程序中,调用 sfb104 “ip_conf”,在“conf_db” 指定的数据块中构建信息,数据块的具体格式见图5,本例中手动创建 db105 作为“conf_db”。
图04
( 88 kb )
图05 当激活 “req” 后,新的参数开始传输,完成传送后新的参数生效。本例中 ip 地址“192.168.0.12”,设备名称 “cpu317-2pn-dp” 。
图06
图07
注意:
- ip 地址和设备名称也可以单独修改,在数据块的 “header” 部分 “subfield_unt” 可以指定子域的个数。
- “conf_db”指定数据块的详细格式和含义,请按 f1 参考帮助。
- 设备名称有严格的字符限制,具体要求请一定参考帮助。比如,不能使用大写字母;不要使用除 “-” 以外的符号,比如括号,斜杠等;否则会有dw#16#c0809400 的报错信息。
- db 块中设备名称构建完成后,必须在下一个字节以数字 “0” 作为结束的标志,本例中:db105.dbb43。
- 数据块中的参数 “subfield_mod”,“1” 数据断电保持;“2” 无保持。如果设置为 “2”,则断电后 ip 地址恢复为 “0.0.0.0” ,设备名称恢复为空。
- 本例程仅作为使用参考,不能直接用于工程!