使用“T_CONFIG”指令可以从用户程序中改变以太网地址和PROFINET设备名称。
使用S7-1500 CPU V1.8及更高版本还有STEP 7 V13 SP1 Upd4及更高版本,可以在用户程序中使用“T_CONFIG”指令为日同步时间更改NTP服务器的IP地址。
之前有效的组态数据会被覆盖。
可以使用“T_CONFIG”指令做以下改变:
- IP协议设置
- IP地址
- 子网掩码
- 路由器地址
- PROFINET设置
- PROFINET设备名称分配
- 时钟同步设置
- 为时钟同步的NTP服务器(仅限S7-1500)分配IP地址
设置对应的配置选项位于:在“以太网地址”对话框中“IP 协议”和“PROFINET”下,或者在“时钟同步”对话框中“NTP 模式”下可以找到。这会在“设备视图”和“网络视图”中PROFINET接口属性下“Devices & Networks”中显示。
改变NTP服务器IP地址的必备条件
为使用“T_CONFIG”指令,必须在硬件组态中明确指定通过用户程序来分配IP地址参数和设备名称。
- 为此,需要在设备视图中打开PROFINET接口的属性。为了通过“T_CONFIG”更改NTP服务器的IP地址,需要在“时钟同步”对话框激活选项“通过NTP服务器启动同步时间”,然后需要在NTP服务器处指定IP地址。
- 组态数据必须存储在系统数据类型中,并在“CONF_DATA”参数中传递。在系统数据类型IF_CONF_NTP中储存NTP时钟同步的IP地址。
“T_CONFIG”指令的输入参数
表01展示“T_CONFIG”指令的输入参数。
参数 | 数据类型 | 描述 |
---|---|---|
REQ | BOOL | 当REQ=1时,指令被调用并开始运行。 |
INTERFACE | HW_INTERFACE | 硬件标识 硬件标识在设备视图下接口的属性中以及PLC变量的系统常量中显示。 |
CONF_DATA | VARIANT | 高级结构的指针包含系统数据类型 IF_CONF_HEADER, IF_CONF_V4和IF_CONF_NOS (参见CONF_DATA参数的描述)。 |
表01
“T_CONFIG”指令的输出参数
表02展示“T_CONFIG”指令的输出参数。
参数 | 数据类型 | 描述 |
---|---|---|
DONE | BOOL | 状态参数:
|
BUSY | BOOL |
状态参数:
|
ERROR | BOOL | 参数状态:
|
STATUS | DWORD | 详细状态信息: 详细报错和状态信息在STATUS参数以一个错误代码的形式输出。 |
ERR_LOC | DWORD | 错误位置:
|
表02
CONF_DATA 参数中组态数据的结构
CONF_DATA 参数的组态数据可以存在全局数据块或者块接口的“Static”部分。组态数据必须按照如下结构存储。
名称 | 数据类型 | 描述 |
---|---|---|
ConfData | Struct | 高级结构特定的CONF_DATA 参数。 |
Header | IF_CONF_HEADER | 通过 header定义下列系统数据类型的编码。必须总是包含系统数据类型IF_CONF_HEADER。 |
IPData | IF_CONF_V4 | 在这个系统数据类型中储存IP地址,子网掩码和路由器地址。只有在需要通过“T_CONFIG”修改以太网地址时才需创建 IF_CONF_V4。 |
NoS | IF_CONF_NOS | 在这个系统数据类型中存储PROFINET设备名称。只有在需要通过“T_CONFIG”修改设备名称时才需创建IF_CONF_NOS。 |
NTP | IF_CONF_NTP | 在这个系统数据类型中为时钟同步NTP服务器存储IP地址。 |
表03
IF_CONF_NTP子字段
通过IF_CONF_NTP 子字段为时钟同步NTP服务器定义IP地址。
字节 | 参数 | 数据类型 | 起始值 | 描述 |
---|---|---|---|---|
0...1 |
Id | UINT | 17 | 系统数据类型的标识。必须不能改变参数的起始值。 |
2...3 | Length | UINT | 22 | IF_CONF_NTP系统数据类型的字节长度。因为IF_CONF_NTP的参数有固定的长度和结构,所以长度规格必须使用起始值。 |
4...5 | Mode | UINT | 有效性:
|
|
6...9 | NTP_IP[1] | ARRAY[1..4] of IP_V4 | NTP服务器1的IP地址 | |
10...13 | NTP_IP[2] | ARRAY[1..4] of IP_V4 | NTP服务器2的IP地址 | |
14...17 | NTP_IP[3] | ARRAY[1..4] of IP_V4 | NTP服务器3的IP地址 | |
18...21 | NTP_IP[4] | ARRAY[1..4] of IP_V4 | NTP服务器4的IP地址 |
表04
关于子字段IF_CONF_HEADER, IF_CONF_IPV4和 IF_CONF_NOS的信息可以在 "STEP 7 Professional V13 SP1,in the section entitled "CONF_DATA Parameter"手册中查看。
STATUS和ERR_LOC参数
在STATUS和ERR_LOC参数有“T_CONFIG”指令的输出状态和错误信息。
表05展示STATUS和ERROR参数的可能值,会在系统数据类型IF_CONF_V4或IF_CONF_NOS或IF_CONF_NTP发生错误时出现。
STATUS | ERR_LOC | 描述 |
---|---|---|
C080_8B00 | 0001_000x | 参数ID有一个无效值。 IF_CONF_V4使用“30”,IF_CONF_NOS 使用“40”,IF_CONF_NTP使用“17”。 |
C080_8C00 | 0001_000x | 使用错误的额系统数据类型,错误的顺序或者多次使用一个系统数据类型。 |
C080_8D00 | 0001_000x | 参数的长度不正确或是无效的值。 |
C080_8E00 | 0001_000x | 模式参数有一个不正确或者无效的值。
|
C080_9000 | 0001_000x | 组态数据不能被接受。可能原因:
|
C080_9400 | 0001_000x | 参数值没有被定义或者是无效值。 |
C080_9500 | 0001_000x | 两个参数的值不一致。 |
表05
更多关于STATUS和ERR_LOC参数的信息可以在手册"STEP 7 Professional V13 SP1",in the section entitled "STATUS and ERR_LOC Parameters"中找到。
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc322009.html