如何使用苏培PROFINET总线网关 与西门子1200系列PLC通讯
2025.05.23 13:43浏览量:158简介:本期我们来注重介绍一下Superisys RFID如何使用PROFINET总线网关与西门子1200系
PROFINET 是一种实时以太网标准,面向各种工业应用 (包括工厂自动化、过程自动化和楼宇自动化)所需的高速、确定性通信;PROFINET 最初在西门子主导下作为常用的 PROFIBUS 现场总线技术的网络扩展而开发,现在得到了 PROFIBUS & PROFINET International 的支持。
本期我们来注重介绍一下Superisys RFID如何使用PROFINET总线网关与西门子1200系列PLC进行通讯读写。
Superisys IACM-P4系列工业网关是一种提供标准工业总线协议的RFID控制器,支持ProfiNet、EtherCAT、Ethernet/IP协议;包含两个M12 T-CODE电源供电接口,两个M12 D-CODE 4-PIN 网络接口与4个M12 A-CODE RFID读写头接口;工业以太网传输速率最高支持100Mbps,可级联多个总线模块到PLC中,提供强大的现场采集数据能力。外壳采用轻便坚固的工程塑料,具有连接范围广、通信能力强、环境适应好、防护等级高等特点。
可同时连接4个RFID读写头进行独立操作;
支持ProfiNet、EtherCAT、EtherNet/IP协议;
IP67的防护等级,能够适应油污、粉尘、潮湿等恶劣工况;
双网口,集成交换机功能,可组星型网络和树型网络;
电源输入带反接保护和3000W浪涌保护,RFID端口带防反接和过压过流保护。
硬件构架介绍
RFID架构系统主要组成如下:
控制器(PLC):
下发命令控制读写头进行操作;
网关总线控制器:
PLC与网关总线控制器进行通讯,间接控制读写头;
读写头(超高频/高频):
获取控制器的命令,执行对载码体的读/写数据操作;
载码体载码体(超高频/高频):
存储数据的载体,数据存储区域划分如下:
高频载码体有UID区(通常只有8 byte/只读且唯一)、USER区(实际内存大小因载码体类型而异/可读可写);
1.组态连接
1.1 总线网关GSD文件安装
打开西门子TIA软件,新建一个项目程序,在“选项”栏下方选择“管理通用站描述文件(GSD)”选项,选择GSD文件的相应文件夹,如下图所示:
勾选相应文件夹下的GSD文件,点击“安装”,完成即可。
1.2 总线网关设备组态
双击“设备组态”,选择 “网络视图”,在右方的“硬件目录”下依次点击“其它现场设备”——“Gateway”——“Superisys”——“IACM-P4”——“Superisys_PN_V2.32”,将其拖拽至“网络视图”空白栏,如下图所示:
双击“IACM-P4-PN”设备,选择硬件模块的“网口”图标双击,修改配置PN网关的IP地址为192.168.0.10(默认),如下图所示:
设置完成,编译好点击“保存”即可。
1.3 PN网关组态参数下载
选择“设备组态”图标,在上方选项栏点击“下载到设备”,选择好相应的PC网络接口以及子网连接,“搜索”到PLC的IP地址后,点击“下载”按钮对“硬件组态”进行下载(本例程使用西门子1200系列型号的PLC,IP地址设置为:192.168.0.8)下载完硬件组态后,点击上方“转至在线”按钮,选择“网络设备”栏,如下图所示:
通常进行一个PN总线网关使用测试时,“IACM-P4-PN”总线网关是直接显示正常在线的,如上图所示,显示绿色;
(用户也可通过总线网关状态指示灯对连接状态进行确认)
在进行多个PN总线网关的连接测试时,通常后续PN总线网关需要重新分配设备名称,点击“转至在线”后,“IACM-P4-PN_1”总线网关会显示未能正常连接,选择“DP-NORM”模块,右键选择“分配设备名称”,在出现的“分配PROFINET设备名称”的串口中,点击“更新列表”按钮,选中更新出现的“IACM-P4”设备,点击“分配名称”按钮对PN总线网关设备进行PROFINET设备名称在线分配,如下图所示:
分配完成后,关闭“分配PROFINET设备名称”弹窗,点击“转至离线”按钮,再次进行“设备组态”下载,下载完成后,再次点击“转至在线”按钮,查看PN总线网关设备的在线连接状态,如下图所示:
2.功能块介绍
2.1网关RFID通道的变量映射
选择例程程序的“IACM-P4-PN”模块,右键选择“属性”,点击“系统常数”,对应网关读写头的输入输出地址映射自动分配如下图所示:
2.2 RFID读写功能块引脚说明
一个“RFID_RW_FB”功能块实例调用对应一个端口通道的读写头,功能块图形如下:
功能块引脚说明
每个功能块实例对应一个读写头,功能块引脚定义及功能如下:
输入引脚定义解析:
序号 名称 数据类型 说明
1 IN_Address HW_SUBMODULE RFID组态输入硬件标识符
2 xRead Bool 读取载码体的USER区(需指定起始地址、长度进行读取)
3 wReadAddress Word 读操作指定的载码体内存起始地址
4 iReadLength Int 读操作指定的载码体内存字节长度
5 xWrite Bool 对载码体的USER区写入(需指定起始地址、长度进行写入)
6 wWriteAddress Word 写操作指定的载码体内存起始地址
7 iWriteLength Int 写操作指定的载码体内存字节长度
8 arrWriteData Array[Byte] 写载码体USER内存数据填充区
9 xReset Bool 复位命令,复位状态机
10 OUT_Address HW_SUBMODULE RFID组态输出硬件标识符
输出引脚定义解析:
序号 名称 数据类型 说明
1 xReady Bool 读写头连接信号
0:未建立连接
1:已建立连接
2 xTP Bool 读写头检测载码体信号
0:未检测到载码体
1:已检测到载码体
3 xBusy Bool 读写头命令执行状态
0:空闲 1:执行命令中
4 iTagRSSI Int 读写头感应载码体信号强度
0:未感应到
1:信号强度较弱
2:信号强度较好
3:信号强度强
5 iUIDLength Int 载码体ID长度
6 arrUIDData Array[Byte] 载码体ID数据区
7 arrReadData Array[Byte] 读载码体内存数据存储区
输入输出引脚定义:
序号 名称 数据类型 说明
1 wErrorCode Word 读写头命令执行状态码
16#00 :成功
16#XX :错误码(具体见第四章错误代码定义详情)
2 iStepNum Int 功能块命令执行步序
3 xReadError Bool 读取载码体内存命令执行错误
4 xReadDone Bool 读取载码体内存命令执行成功
5 xWriteError Bool 写入载码体内存命令执行错误
6 xWriteDone Bool 写入载码体内存命令执行成功
xRead,xWrite两个信号互斥,同一时间只能有一个信号为高电平,功能块只会执行第一个检测到的有效信号。
2.3 RFID读写头输入输出地址映射
本例程中,PN总线网关的各个RFID地址映射通过组态的“硬件标识符”进行映射的,如下图所示,RFID1的输入、输出硬件标识符分别是“282”、“283”,分别将数字填写到相应的RFID1调用功能块“IN_Address”和“OUT_Address”引脚即可:
3 读写头读/写功能示例
3.1命令执行时序
1、载码体ID读取
调用RFID读写功能块后,默认保持RFID使能;当读写头感应到载码体的在位信号(xTP)的上升沿,自动上传载码体ID数据,当载码体离开读写头感应区域时,载码体ID数据自动清空,具体的时序如下图所示:
2、命令执行
在执行读写载码体内存数据命令时,需要先填写好读写的参数(读写载码体内存的起始地址,字节长度,写入的数据填充区数据内容等),然后再触发读写命令,具体的命令执行时序如下图所示:
在xRead/Write执行过程中,在未收到(xRead/WriteDone、xRead/WriteError)信号时,请不要手动复位xRead/Write信号,也建议用xTP信号去替代xRead信号进行自动读取触发。
3.2读UID数据区
操作步骤如下:
a)载码体靠近读写头,读写头自动感应载码体,载码体到位信号“xTP”变为“TRUE”;
b)arrUIDData[0] – arrUIDData[7] 自动获取所靠近载码体的UID数据,固定长度8个字节;
备注:UID数据出厂时设定,可读不可写,数据序列是唯一的。
3.3写USER数据区
写入数据至载码体
当载码体静止在读取范围时,通过写入功能可以向一个载码体指定的地址写入特定长度的数据;命令的执行以”xWrite”高电平开始,在命令执行前,需要填写以下参数:
序号 参数 参数类型 说明
1 wWriteAddress 输入 指定载码体内存的起始地址
2 iWriteLength 输入 写载码体的内存字节长度
3 arrWriteData 输入 写载码体内存的数据填充区
写入操作步骤如下:
a)载码体靠近到位,载码体到位信号xTP信号的值为“1”;
b)在arrwriteData数组中填充数据要写入的数据;
c)载码体到位,载码体到位信号xTP信号的值为“TRUE”;
d)修改数据长度iWriteLength的值8,单位为字节;
e)修改起始地址wWriteAddress的值为16#0000;
f)修改写入命令xWrite 为 “1”;
g)查看功能块反馈回来的完成信号xWriteDone和错误信号xWriteError。
如下图所示:从起始地址0开始,写入8个字节数据进入载码体的用户区成功。
3.4读USER区
从载码体读取数据
当载码体在读取范围时,通过读取功能可从载码体指定起始地址读取特定长度的数据;命令的执行以”xRead”高电平开始,在命令执行前,需要先填充部分引脚参数:
序号 参数 参数类型 说明
1 wReadAddress 输入 指定载码体内存的起始地址
2 iReadLength 输入 读取载码体的内存字节长度
3 arrReadData 输出 读取载码体内存的数据存储区
读取操作步骤如下:
a)载码体到位,载码体到位信号xTP信号的值为“TRUE”;
b)修改数据长度iReadLength的值为8,单位为字节;
c)修改起始地址wReadAddress的值为16#0000;
d)修改写入命令xRead 为 “1”(必须先复位xWrite信号);
e)查看功能块反馈回来的完成信号xReadDone和错误信号xReadError。
如下图所示:从起始地址0开始,读取8个字节载码体的用户区数据成功。
4.错误码
4.1 错误码详细定义
读写头自定义错误码(命令执行错误时):
错误码 定义 说明
十进制 十六进制
144 90H 无标签响应 此时标签可能不在读取范围
145 91H 射频数据错误 此时可能有强电磁干扰导致数据传输出错,或者数据传输一半标签离开读取区域
147 93H 标签内存锁定 标签内存已经锁定,禁止写入
149 95H 标签离开 读取到一半数据,标签离开
150 96H 标签离开 写一半数据,标签离开
161 A1H 射频数据发射异常 射频数据无法发送出去
176 B0H 参数错误
功能块自定义错误码:
错误码 定义 说明
十进制 十六进制
144 70H 读写头未连接 读写头未正常连接
145 71H 命令无效 命令执行时参数错误
147 74H 读取超时 读取命令执行超时
149 75H 写入超时 写入命令执行超时
150 90H 标签不在位 命令执行时,载码体不在感应区域
发表评论
登录后可评论,请前往 登录 或 注册