硬件:CPU 1510SP-1
目的:测试3964-R通信协议
软件:Portal V15.1
1. Euchner安士能 CIT3SX基本参数
![](https://img-blog.csdnimg.cn/20200719151426288.jpg)
(a). 读写头
硬件接线:
1号端子 — 24V
2号端子 — RxD(连接到PLC的TxD)
3号端子 — 0V (PLC侧GND接口的电位保持一致)
4号端子 — TxD(连接到PLC的RxD)
通信参数配置:
1起始位
8数据位
1校验位(偶校验)
1结束位
波特率9600
(b). 数据载体
基本参数:
可供读写的容量大小:16字节
2. Euchner安士能 CIT3SX读取与写入功能
(a). 3964-R协议完整通信流程
3964-R通讯协议可大致分为3个步骤
建立连接阶段
报文数据传输阶段
连接清除阶段
在硬件设备没有3964-R驱动协议的情况下,建立连接,清除连接,超时重连等逻辑都需要我们自己来编写。
如果硬件设备具备3964-R驱动协议的话,正常发送报文数据即可。
(b). 数据读取与写入流程
读取与写入操作均由PLC侧通过发送指令报文来触发,读写头执行完指令后会回复一条响应报文
读取指令报文结构:
读取成功时响应报文结构:
读取错误时响应报文结构:
数据写入指令报文结构:
写入指令对应的响应报文结构
错误代码汇总
02h:数据载体不在活动区域
03h:读取操作被中断
04h:写入时出错,或读取检查时出错
05h:写入操作被中断,数据载体从活动区域被移除
16h:数据长度超过16字节
3. ET200SP通讯测试
(1). 硬件组态
插入PLC及功能模块
CM PtP→接口→操作模式选择RS232C
CM PtP→接口→端口组态,参数设置与读写头保持一致
协议选择3964(R)
传输率:9600
奇偶校验:偶校验
数据位:8位
结束位:1位
(2). 数据读取操作
插入Receive_P2P与Send_P2P指令
从载体中第0字节开始读取16个字节数据,指令报文如下
指令报文发送成功后,会收到相应的回复报文,红色区域内为读取到的16字节数据
若希望从载体中第2字节开始读取16个字节数据,指令报文如下
指令报文发送成功后,收到相应的回复报文,可以看到红色区域内的数据顺序发生了变化
(3). 数据写入操作
插入Receive_P2P与Send_P2P指令
往载体中第0字节开始,写入16个字节的数据,发送报文如下
写入指令发送后,会收到相应的回复报文,无报错即为写入成功
再次读取一下此时载体内的数据,可以看到值已经被写入
若希望往载体中第10字节开始,写入16个字节的数据,发送报文如下
写入成功后再次执行读取命令,可以看到超出16字节范围的数据不会被写入到载体内
若在写入操作时间歇性出现04h报错,是由于载体未放置在读写头的正中间位置所造成