工业RFID应用之技术篇(五):基于CANopen网络的RFID低频读写器通信实例
CANopen是一种架构在控制局域网络(Controller Area Network, CAN)上的高层通信协议,包括通信子协议及设备子协议,常在嵌入式系统中使用,也是工业控制常用到的一种现场总线。
当使用不是基于PROFIBUS或PROFINET的网络化现场总线设备扩展SIMATIC自动化系统时,无缝集成到SIMATIC可以显著提高生产效率。
CK-LR08-C01低频RFID读写器集成CANopen通讯协议,通过第三方CM CANopen通讯模块连接到西门子PLC,在对现场设备升级置换时可无缝连接至下位机,还可同时搭载多台RFID读写器。
RFID连接PLC需要对CANopen网络进行组态,可通过CM CANopen Configuration Studio软件完成。
硬件型号:
PLC:西门子S7-1200 1211C AC/DC/RLY
通信模块:HMS CM CANopen (021620-B)
读写器: CK-LR08-C01
软件型号:
编程组态软件:TIA Portal V14 SP1
CM CANopen Configuration Studio软件版本:2.1
PLC固件版本:V4.2
CANopen Eds版本:CK-LR08-C01
一、配置CANopen通讯模块
打开CM CANopen Configuration Studio软件,首先将CK-LR08-C01的EDS参数文件导入组态软件CM CANopen Configuration Studio。
EDS文件是用来描述从站参数的文本文件,EDS文件唯一的作用就是给主站配置软件,让配置的过程变得简单,我司针对RFID读写器开发了完善的EDS文件,购买时附送。
在Tools中选择Manage Catalog打开Device Catalog Managemen,点击Import a device打开文件选择窗口,选择好目标EDS文件双击载入。
此时可以在界面下方的Error List栏内看到是0Errors 0Warnings,这就代表EDS文件成功载入,从站参数成功导入。
新建一个工程文件,选择保存路径、主站设备(CANopen Manager Device)为S7-1200 CM CANopen,然后点击OK保存。
在下方的Other Profiles栏内将读写器型号拖动至上方的Project Explorer内,在弹出的Add New Device项目栏内填入设备名称(Logical Name)、从站ID(Node-ID,默认选择2),将Group选择为Slaves从站然后点击完成。
软件界面上半部分NMT栏目:
Bit0:勾选表示设定该设备为主站
下方Slave栏目:
Bit0:勾选表示设定该设备为从站
Bit1:勾选表示当网络启动(设备上电)或者设备从错误控制事件中恢复正常时,主站会对该设备写入配置并启动该设备进入运行状态
Bit7:勾选表示该设备在进行配置前恢复出厂设置
我们将下方的Bit7取消勾选
打开Error Conttrol Configuration界面,将主从站的心跳报文时间(Producer Time)设定为500ms,再设定主站监听从站的心跳报文超时时间(Consumer Time)设定为750ms。
打开Application objects界面,选择要通过PDO传送的参数对象,将选项全部勾选。
打开Process Image选项卡 >> 点击“Add new group”图标 >> 以小写的英文字母分别命名创建的Group。
选中同一Node-ID下的所有对象 >> 在Group下拉列表中(图中标识2)选择分配给该Node-ID的组名 >> 点击“Assign group to selected objects”(图中标识3)图标完成分组。
在软件界面的右侧找到PDO Parameters Node-ID,设置RPDO和TPDO的参数 >> 将Enabled和Lock PDO都勾选 >> Transmission Type(传输类型)选项都选择Event-driven >> 对于TPDO还需要设置最大最小发送间隔,Inhibit Time设置为50dec,Event Timer设置为500dec。
参数设置成功之后点击“计算配置”等待计算完成,点击“生成配置”生成配置文件并保存至用户指定文件夹。
点击下载,在弹出的Download界面选择CM CANopen USB,Download File选择刚才生成的配置文件,点击Download等待程序运行完成。
二、西门子PLC例程
打开博图TIA V14编程软件,加载PLC例程,双击“设备与网络”,设置CANopen通讯模块的通信格式。
在属性>>常规中选择“CANopen接口”,操作模式选择“CANopen Mnager”,波特率设置“1000”,数据大小设置“32”。
设置完成就可以查看程序了,程序已经做好了封装,主程序main内调用“LR08 Read”和“LR08 Write”程序块进行读写操作即可。
在“LR08 Read”块中主要调用“RDREC”指令,其中ID为硬件标识符,INDEX为PDO数据缓冲区索引,MLEN为CANopen输入数据大小(bytes),RECORD为读取的数据存放的地址域。“LR08 Write”块中主要调用“WRREC”指令,完成写命令。
读写器数据将会保存到DB数据块“LR08”的“Read Data”和“Write Data”,方便用户调用。
希望本文能够帮助到使用CANopen通讯模块的客户,解决客户对产品的不熟悉导致的问题,如需了解更多CANopen和RFID信息的应用与问题解决方案请关注微信公众号(晨控智能)或者登陆晨控智能技术官网查询,晨控智能期待您的咨询与合作。