西门子 6GT2002-0HD01 西门子 6GT2002-0HD01 西门子 6GT2002-0HD01
RFID 通信模块 RF170C 用于安装在 ET 200pro 中; 基本模块用于连接 2 个阅读器;带 RS-422 或 RS-232,无接线板
|
建议同时购买:
![]() ![]()
工业以太网 FastConnect M12 插头 PRO 2x2 M12 插塞连接器带 坚固的金属外壳和 FC 连接系统,含 轴向电缆转接件(D-编码) 1 包 = 1 件,用于 SCALANCE X208 PRO 和 ET 200 PRO PN
![]() ![]()
SIMATIC RF,MV 插接电缆, 预制,中间 ASM 456,RF160C,RF170C,RF18XC 和阅读器,或 加长电缆用于 ASM 456, RF160C,RF170C,RF18XC 带 RF, MV,MOBY PUR,CMG,跟踪, 长度 5m
![]() ![]()
SIMATIC RF300; 阅读器 RF340R(GEN2); RS422 接口(3964R); IP67, -25 至 +70°C,75x 75x 41 mm,集成有天线
|
可以 使用组态控制功能来设置S7-1500控制器或者ET200MP的组态,即可以组态一个最大的硬件组态配置下载至 PLC 中,然后在程序中通过控制数据记录的方式,使该设备可在缺少模块或者更改模块排列顺序的情况下继续运行。如果以后更新了缺失的模块,则无需重新组态,也无 需重新加载硬件组态。组态控制功能为用户提供了灵活性,只要实际组态不超过设定的最大组态,就可以通过使用控制数据记录196进行控制,以指定所需的组 态。
对于 S7-1500中央机架实现组态控制的要求:
STEP7 Professional V13 或更高版本
CPU S7-1500 固 件版本 V1.5 或更高版本
首先在 TIA 博 途中组态 S7-1500 的 最大硬件配置。即目前存在的和以后更新硬件所使用的模块,都包含于此硬件组态中。本例中,共组态了 10 个插槽,槽号为 0 至 9,模块依次为 PS25W 24VDC 电源,S7-1516CPU,两个 DI16/DQ16 X24VDC模块,PS25W 24VDC电源,TM Count 2X24V计数模板,DI 16X24VDC 模 块,DQ 16X24VDC模块,AI 8XU/IRTD/TC 模 拟量输入模板,AQ 8XU/I HS 模 拟量输出模板。
实际安装的硬件依次为:S7-1516CPU,AI 8XU/IRTD/TC 模拟量输入模板,AQ 8XU/I HS 模拟量输出模板,TM Count 2X24V 计 数模板,PS25W 24VDC 电 源,DI 16X24VDC 模 块,DQ 16X24VDC 模 块。即最大硬件组态和实际硬件组态对应关系如图01 所示:
图01. 最大硬件组态与实际组态的对应关系
然 后需要启用 PLC 的 组态控制功能,在硬件组态 CPU 的 属性中,按照菜单命令“属性”->“常规”->“组态控制”下,激活“允许通过用户程序重新组态设备”选项,如图 02 所示:
图02. 激活组态控制功能
接 下来创建一个共享数据块,用来存储将要传送的数据记录。并在启动组织块(本例为 OB100)中对数据块赋值,作用是描述 实际安装的模块与最大组态之间的关系,规则如下表所示:
字节 | 含义 | 数值 | 说明 |
0 | 数据记录长度 | 4+ 插 槽数 | 数据记录头 |
1 | 数据记录 ID | 196 | |
2 | 版本 | 4 | |
3 | 版本 | 0 | |
4 | 对最大组态中插槽0 中的模板进行分配 | 硬件组态插槽 0 中的模板所对应的实际插槽号 |
如果模板仅在硬件 组态中存在,而实 际中不存在,则数值为 B#16#FF |
5 | 对最大组态中插槽1 中的模板进行分配 | 硬件组态插槽 1 中的模板所对应的实际插槽号 | |
. . |
. . |
. . |
|
4+插 槽数 | 对最大组态中最大插槽编号的模板进行分配 | 硬件组态中最大插槽编号的模板对应实际中的插槽号 |
表01. 数据记录含义
说 明:
前 四个字节为标头,第一个字节为块长度(4+ 插 槽数),第二个字节为块 ID(数 据记录号 196),第三 个和第四个字节为版本(S7-1500 对 应为 4 和 0)。
从 第五个字节开始,按照槽号由低到高的顺序,依次描述最大硬件组态中的模块在实际组态中的位置,组态中的模块在实际中不存在时,向数据块中写入“B#16#FF”。按照以上规则在共享数据 块中建立一个结构,包含有 14 个 字节的数据,如图 03 所 示:
图03. 建立数据块
必 须在启动组织块(本例中为 OB100) 调用“WRREC”指令传 送创建的数据记录。在右侧的指令栏中,按照顺序“扩展指令”-〉“分布式I/O”下找到“WRREC”指令。如果未能在启动 OB(本例为 OB100)中传输有效的控制数据记录, 则 CPU 会从启动模 式返回到停止模式。因此,需要“WRREC”指令执行完才能退出启动组织 块,本例中以功能块“WRREC”的完成信号“Done”为循环指令的结束条件,保证能够 完成数据记录的传输。
对 于S7-1500 CPU,使用硬件标识符 33(作为“WRREC” 指令的“ID”的参数)写 入数据记录,程序如图 04 所 示,其中,参数“WRREC_DONE”、 “WRREC_BUSY” 等是在组织块的接口参数中定义的临时变量:
图04. 在启动组织块中写入数据记录
编 译和下载程序至 S7-1500 CPU 中, 启动后,S7-1500 CPU 就 可以正确识别中央机架上现有的模板并启动。
注意:
对于在线显示以及诊断缓冲区的显示,都以硬件组 态中的最大组态显示,而不是实际的组态。
实现 S7-1500 中央机架的组态控制 时,不能有通信处理器 CP/CM(包 括点对点通信模板)。
系统电源模块(PS)也遵从组态控制,但是不建议对插槽 0 的系统电源模块进行组态控制。
固件版本 V2.0 以上的 IM155-5 PN ST 接口模板 或 IM155-5 PN HF 接 口模板支持组态控制功能。
首先在 TIA 博途中组态最大硬件配置,即以 后所能使用到模板都包含在这个组态中。本例中控制器为315-2PN DPCPU。ET200 MP 分布式 I/O 中共组态了 11 个模板,分别位于插槽 0~10 中,模 块依次为 PS25W 24VDC 电 源,IM 155-5 PN ST 接 口模板,TM Count 2X24V 计 数模板,AI 8XU/IRTD/TC 模 拟量输入模板,AQ 8XU/I HS 模 拟量输出模板,DI 16X24VDC 模 块,DQ 16X24VDC 模 块,PS25W 24VDC 电 源,两个 DI16/DQ16 x 24VDC 模 块,CM PTP RS422/485 通 信模板。
实际安装的硬件依次为:PS25W 24VDC 电源,IM 155-5 PN ST 接口模 板,AI 8XU/IRTD/TC 模 拟量输入模板,AQ 8XU/I HS 模 拟量输出模板,TM Count 2X24V 计 数模板,DI 16X24VDC 模 块,DQ 16X24VDC 模 块,CM PTP RS422/485 通 信模板。即最大硬件组态和实际硬件组态对应关系如图05 所示:
图05. 最 大硬件组态与实际组态中的对应关系
然后启用组态控制功能,选择 ET200MP 接口模板的“属性” -〉“常规”-〉“模块参数”->“常规”中,启用“允许通过用户程序重新组态设备”功能,如图06 所示:
图06. 激活组态控制 功能
然后新建一个共享数据块,用来存储要传送的数据记录,数据记录中的 数据规则如表02 所 示:
字节 | 含义 | 数值 | 说明 |
0 | 数据记录长度 | 4+ 插 槽数 -1 | 数据记录头,“-1” 是因为数据记录中不需要对接口模板作任何配置 |
1 | 数据记录 ID | 196 | |
2 | 版本 | 3 | |
3 | 版本 | 0 | |
4 | 对最大组态中插槽0 中的模板进行分配 | 硬件组态插槽 0 中的模板所对应的实际插槽号 | 如果模板仅在硬件组态中存在,而实际中不存在,则数值为 B#16#7F |
5 | 对最大组态中插槽2 中的模板进行分配 | 硬件组态插槽 2 中的模板所对应的实际插槽号 | |
. . |
. . |
. . |
|
4+ 插 槽数 -1 | 对最大组态中最大插槽编号的模板进行分配 | 硬件组态中最大插槽编号的模板对应实际中的插槽号 |
表02. 数据记录含义
说明:
前 四个字节为标头,第一个字节为块长度(4+ 插 槽数 -1,这是因为接口模板不需要作任何操作,所以数据记录中没有接口模板的描述),第二个字节为块 ID(数据记录号 196),第三个和第四个字节为版本(IM 155-5 PN 接口模板对应为 3 和 0)。
从 第五个字节开始,按照槽号由低到高的顺序,依次描述最大硬件组态中的模块在实际组态中的位置,组态中的模块在实际中不存在时,向数据块中写入“B#16#7F”。接口模板不需要作任何设 置。按照以上规则在共享数据块中建立一个结构,包含有14 个字节的数据,如图07 所示:
图07. 建立数据块
在 OB1 中调用“WRREC”指令传送创建的数据记录。在右 侧的指令栏中,按照顺序“扩展指令”-〉“分布式I/O”下找到“WRREC”指令。在S7-300/400 作为控制器时,使用ET200MP 接口模块的诊断地址作为“WRREC”指令接口参数“ID”的实参。当控制器为 S7-1500 时,使用 ET200MP 接口模板的名称为“IO_device_2[Head]”所对 应的硬件标识符作为“WRREC”指令接口参数“ID”的实参。程序如图08 和图09 所示,其中,参数“WRREC_DONE”、“WRREC_BUSY”等是在位存储区中定 义的变量:
图08. 315CPU 中将实际的配置对 应的数据记录写入数据块
SFC 51简介
1.1 程序功能介绍
通过系统功能SFC 51 "RDSYSST" (读取系统状态),可以读取系统状态列表或部分系统状态列表,例如指示灯状态,序列号,从站状态等等。
调用SFC 51时,通过将值“1”赋给输入参数REQ来启动读取。如果可以立即读取系统状态,则SFC将在BUSY输出参数中返回值0。如果BUSY包含值1,则尚未完成读取功能。
表1 SFC51参数说明
参数 | 描述 | |
REQ | 输入参数 | REQ = 1:启动处理 |
SSL_ID | 输入参数 | 将要读取的系统状态列表或部分列表的ID号 |
INDEX | 输入参数 | 部分列表中对象的类型或编号。 |
RET_VAL | 输出参数 | 如果执行SFC时出错,则RET_VAL参数 |
将包含错误代码。 | ||
BUSY | 输出参数 | TRUE:尚未完成读取。 |
SSL_HEADER | 输出参数 | LENTHDR是SSL列表或SSL部分列表的数据记录的长度。 |
• 如果仅读取了SSL列表的标题信息,则N_DR包含属于它的数据记录数。 | ||
• 否则,N_DR包含传送到目标区域的数据记录数。 | ||
DR | 输出参数 | SSL列表读取或SSL部分列表读取的目标区 |
域: | ||
• 如果仅读取了SSL列表的标题信息, | ||
则不能评估DR的值, | ||
而只能评估SSL_HEADER的值。 | ||
• 否则,LENTHDR和N_DR的乘积将指 | ||
示已在DR中输入了多少字节。 |
2 读取CPU指示灯
可以通过SFC 51读取CPU的指示灯状态,使用的SSL_ID参数为16#74(16#19)读取全部指示灯状态 或者16#174(16#119)读取单个指示灯状态
2.1 编程
首先需要创建一个数据块,用来存放读取出来的指示灯状态结果
图1 创建DB1,存放读取结果
打开OB1,在OB1的临时变量区创建一个变量length,类型设置为Struct(结构)
图2 创建名为length的结构变量
双击length变量,进入结构变量成员定义,创建两个word类型的变量,本例中分别为size和number:
图3 创建length的结构变量的两个word成员
编写SFC51程序:
CALL "RDSYSST"
REQ :=TRUE
SZL_ID :=W#16#74 //读取全部指示灯状态
INDEX :=W#16#0
RET_VAL :=MW0
BUSY :=M2.0
SZL_HEADER:=#length
DR :=P#DB1.DBX0.0 BYTE 500 //结果输出到DB1数据块中
DB1存放的结果即为模块的指示灯状态,每个指示灯有4个字节的长度来描述。
前两个字节表示灯的类型(见表二),表示是SF灯还是BF灯等等。
第三个字节表示灯是亮还是灭,如果为1则灯亮,如果为0则灯的状态是灭。
第四个字节表示灯是否闪烁,0表示不闪,1表示正常闪烁(2hz),2,表示慢闪(0.5hz)
灯的类型列表如下(不同的CPU会有不同数目的指示灯):
表2 前两个字节的含义
16#1 | SF |
16#2 | INTF |
16#3 | EXTF |
16#4 | RUN |
16#5 | STOP |
16#6 | FORCE |
16#7 | CRST |
16#8 | BAF |
16#9 | USR |
16#A | USR1 |
16#B | BUS1F |
16#C | BUS2F |
16#D | REDF |
16#E | MSTR |
注意事项:
关于系统功能SFC51的更多详情请参阅STEP 7的在线帮助,或者通过Start > SIMATIC > DOCUMENTATION选择手册“System Software for S7-300/400 System and Standard Functions”
3 读取Profibus DP从站 状态
3.1 编程
首先需要创建一个数据块,用来存放读取出来的状态结果
图4 创建DB1,存放读取结果
打开OB1,首先在OB1的临时变量区创建一个变量length,类型设置为Struct(结构)
图5 创建名为length的结构变量
双击length变量,进入结构变量成员定义,创建两个word类型的变量,本例中分别为size和number:
图6 创建length的结构变量的两个word成员
编写SFC51程序:
CALL "RDSYSST"
REQ :=TRUE
SZL_ID :=W#16#294 //读取从站是否存在
INDEX :=W#16#1
RET_VAL :=MW0
BUSY :=M2.0
SZL_HEADER:=#length
DR :=P#DB1.DBX0.0 BYTE 500 //结果输出到DB1数据块中
在本例中,P#DB1.DBX0.0 BYTE 500中为每个DP从站(16 x 8 = 128)保留一位,地址为Address 1的DP从站的状态保存在第三个字节的Bit 1位中, 地址为Address 3的DP从站的状态保存在第三个字节的Bit 3位中,依次类推。如果从站对应的位未被置位,则表明那个DP从站没有通信上或不存在。
举例:从DB1.DBW2开始,每个位对应一个bit,例如3号站对应的位是DB1.DBX2.3 ,站点存在的位为1,不存在的为0。
注意事项:
关于系统功能SFC51的更多详情请参阅STEP 7的在线帮助,或者通过Start > SIMATIC > DOCUMENTATION选择手册“System Software for S7-300/400 System and Standard Functions”
4读取CPU的序列号
4.1 编程
说明:
通过 SFC 51“RDSYSST”可以从系统状态列表(SSL)中读取下列标识数据:
下面的表格指明了可以从不同型号和固件版本的 CPU 读取其它哪些标识数据。为此使用 SFC 51 和 SSL ID W#16#011C。
表3 INDEX说明
索引 | 名称 | S7-300/C7 | S7-400 |
W#16#0001 | 自动化系统的名称 | 从固件版本 V2.2 起 | 支持 |
W#16#0002 | CPU 的名称 | 从固件版本 V2.2 起 | 支持 |
W#16#0003 | CPU 的设备 ID | 从固件版本 V2.2 起 | 支持 |
W#16#0004 | 版权条目 | 从固件版本 V2.2 起 | 支持 |
W#16#0005 | CPU 的序列号 | 从固件版本 V2.2 起 | 从 MLFB |
6ES741x-xxx04-0AB0 起 | |||
W#16#0006 | 为操作系统保留 | - | - |
W#16#0007 | CPU 型号名称 | - | 支持 |
W#16#0008 | MMC 或 MC 的序列号 (参见条目号:19215608) | 从固件版本 V2.0 起 | - |
(CPU317:从 V2.1 开始) |
需要注意,老CPU升级到上表版本也无法实现此功能。
首先需要创建一个数据块,用来存放读取出来的状态结果
图7 创建DB1,存放读取结果
打开OB1,首先在OB1的临时变量区创建一个变量length,类型设置为Struct(结构)
图8 创建名为length的结构变量
双击length变量,进入结构变量成员定义,创建两个word类型的变量,本例中分别为size和number:
图9 创建length的结构变量的两个word成员
编写SFC51程序:
CALL "RDSYSST"
REQ :=TRUE
SZL_ID :=W#16#11C //读取CPU 的序列号
INDEX :=W#16#5
RET_VAL :=MW0
BUSY :=M2.0
SZL_HEADER:=#length
DR :=P#DB1.DBX0.0 BYTE 500 //结果输出到DB1数据块中
结果如下图:
图10 CPU序列号
注意事项:
关于系统功能SFC51的更多详情请参阅STEP 7的在线帮助,或者通过Start > SIMATIC > DOCUMENTATION选择手册“System Software for S7-300/400 System and Standard Functions”
5 读取存储卡的序列号
5.1 编程
描述:
为了获得 MMC 卡的序列号,必须使用 SFC 51 "RDSYSST" 读出系统状态列表 (SSL) :
• SSL ID W#16#011C "元件的标识"
• Index W#16#0008 "存储卡的序列号"
对于所有的带有 MMC 卡的 S7-300 CPU 和 C7 从固件版本 V2.0 起都可以读出存储卡的序列号,(CPU 317: 从 V2.1 起)。
从S7-400的V5版本起,存储卡上保存唯一的序列号。
首先需要创建一个数据块,用来存放读取出来的状态结果
图11 创建DB1,存放读取结果
打开OB1,首先在OB1的临时变量区创建一个变量length,类型设置为Struct(结构)
图12 创建名为length的结构变量
双击length变量,进入结构变量成员定义,创建两个word类型的变量,本例中分别为size和number:
图13 创建length的结构变量的两个word成员
编写SFC51程序:
CALL "RDSYSST"
REQ :=TRUE
SZL_ID :=W#16#11C //读取MMC 的序列号
INDEX :=W#16#8
RET_VAL :=MW0
BUSY :=M2.0
SZL_HEADER:=#length
DR :=P#DB1.DBX0.0 BYTE 500 //结果输出到DB1数据块中
结果如下:
西门子 6GT2002-0HD01 西门子 6GT2002-0HD01 西门子 6GT2002-0HD01