概述
文章目录
- 1 获取PLC节点地址
- 2 读写PLC地址内容
- 2.1 Fins/Tcp Header
- 2.2 Fins Frame
- 2.2.1 Fins Command Frame
- 2.2.2 Fins Header信息
- 2.2.3 FINS command和FINS parameter/data
- 2.2.4 I / O存储器地址标识
- 3 常用Fins Command格式
- 3.1 读存储区: 01 01
- 发送格式
- 返回格式
- 举例:
- 3.2 写入存储区:01 02
- 发送格式
- 返回格式
- 结束码
1 获取PLC节点地址
PLC和上位机建立TCP通信后,可以发送Fins Node Address Data Send(Client to Server) Command命令获取PLC的节点地址。
具体格式如下:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WdQp9bKS-1571825512529)(https://note.youdao.com/yws/api/personal/file/WEBdf968b520a3e150bd6f157bc1eb8c18f?method=download&shareKey=8bb855386e0290087ee1db7c7bfa97de)]
详细说明:
列表 | 内容(十六进制) | 说明 |
Header | 46494E53 | ASCII码:FINS |
Length | 0000000C | 从command之后的数据长度 |
Command | 00000000 | |
Error code | 00000000 | 没用,服务器不需要检测错误 |
Client node address(Fins node address of Fins/Tcp client | 00000000到000000FE | 0到254。设置为0,自动获取客户端的Fins节点地址 |
2 读写PLC地址内容
PLC和上位机建立通信后,可以通过Fins Frame Send命令读写PLC地址。Fins Frame Send命令分为两部分:Fins/Tcp Header和Fins frame。具体格式如下:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-asIIhu6b-1571825512531)(https://note.youdao.com/yws/api/personal/file/WEB1fc1bdb379ced01eee42ae5827dbda6d?method=download&shareKey=80d933acc01d3971d88846d814047034)]
详细说明:
列表 | 内容(十六进制) | 说明 |
Header | 46494E53 | ASCII码:FINS |
Length | 00000014到000007E4 | 从command之后的数据长度,包含FinsFrame |
Command | 00000002 | |
Error code | 00000000 | 没用,接收结束后不需要检测错误 |
FINS frame | …… | 从Fins header ICF到最后的数据 |
2.1 Fins/Tcp Header
Fins/Tcp Header格式相对简单,内容见上表。
2.2 Fins Frame
FINS通信服务是通过FINS命令帧(FINS command frames)及其对应的响应帧(response frames)来实现的。 (也存在没有回应的命令)。
2.2.1 Fins Command Frame
Fins Command Frame的格式如下:
2.2.2 Fins Header信息
列表 | 说明 |
ICF (Information Control Field) | |
RSV (Reserved by System) | 设置为00(Hex) |
GCT (Permissible Number of Gateways) | 设置为02(Hex) |
DNA (Destination Network Address) | 指定目标节点所在的网络的编号 |
DA1 (Destination Node Address) | 指定发送命令的节点的编号。 这个节点地址是FINS所用的地址,不同于IP用于以太网的地址: |
DA2 (Destination Unit Address) | 指定目标节点上的单元数: |
SNA (Source Network Address) | 指定本地节点所在网络的编号。 可以指定的数字范围与DNA相同 |
SA1 (Source Node Address) | 指定本地节点地址。 可以指定的数字范围与DA1相同 |
SA2 (Source Unit Address) | 指定本地节点的单元号。可以指定的数字范围与DA2相同 |
SID (Service ID) | SID用于标识数据发送的过程。 SID可以设置为00到FF十六进制的任何数字。SID用于检测响应请求是否正确,当发送节点与响应节点的SID值相同,代表响应的数据是请求的数据,不相同,代表响应的数据非请求数据。 |
2.2.3 FINS command和FINS parameter/data
常用Fins命令如下表所示:
类型 | 命令代码 | 名称 | 功能 | |
MR | SR | |||
访问I/O存储区 | 01 | 01 | 读内存区 | 读取连续I/O存储区字的内容 |
01 | 02 | 写内存区 | 写入连续I/O存储区字的内容 | |
01 | 03 | 填充内存区 | 将相同的数据写入指定范围的I/O存储器区 | |
01 | 04 | 多个存储区读取 | 读取指定的非连续I/O存储区字 | |
01 | 05 | 存储区传输 | 将连续存储I/O存储区字内容复制到另外的I/O存储区 | |
访问参数区 | 02 | 01 | 读取参数区 | 读取连续参数区字内容 |
02 | 02 | 写入参数区 | 写入连续参数区字内容 | |
02 | 03 | 填充参数区 | 将相同数据写入到指定范围参数区域字 | |
改变操作模式 | 04 | 01 | RUN | 将CPU单元的操作模式更改为RUN或MONITOR |
04 | 02 | STOP | 将CPU单元的操作模式更改为编程 | |
读取状态 | 06 | 01 | 读取CPU单元状态 | 读取CPU单元状态 |
06 | 20(*) | STOP | 读取最大、最小和平均周期时间 | |
错误日志 | 21 | 01 | 错误清除 | 清除错误或错误信息 |
21 | 02 | 读取错误日志 | 读取错误日志 | |
21 | 03 | 清除错误日志 | 清除错误日志指针 |
2.2.4 I / O存储器地址标识
区域 | 数据类型 | CS/CJ/CP/NSJ-series | CVM1/CV-series | 占用字节长度 | |||||
存储区代码 | 存储区地址 | 存储地址 | 存储区代码 | 存储区地址 | 存储地址 | ||||
DM区 | DM | Bit | 02 | D0000000到D3276715 | 000000到7FFF0F | …… | …… | …… | 1 |
DM区 | DM | Word | 82 | D00000到D32767 | 000000到7FFF00 | 82 | D00000到D32767 | 000000到7FFF00 | 2 |
3 常用Fins Command格式
3.1 读存储区: 01 01
发送格式
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wFgTMJa4-1571825512532)(https://note.youdao.com/yws/api/personal/file/WEBdc7714f99a3300c54ab5636b101ba47a?method=download&shareKey=dbe1c4b5d180f18ddb5ba4ec46f063d1)]
返回格式
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-m1hhdDYf-1571825512533)(https://note.youdao.com/yws/api/personal/file/WEBa080804848023c94b443f869c90b965a?method=download&shareKey=88adaf80c4902bf124337762fcbc4d4b)]
举例:
读取DM区地址100,连续10个地址的数据
发送命令:010182006400000A
返回命令:010100000102030405060708090A
3.2 写入存储区:01 02
发送格式
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-G95t2wxF-1571825512533)(https://note.youdao.com/yws/api/personal/file/WEBedfb96b9b171595cf41a2220e6a9447e?method=download&shareKey=9dae1f29b956fc2378a80e19ca5565cc)]
返回格式
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-O0iPkf9P-1571825512534)(https://note.youdao.com/yws/api/personal/file/WEB9f8c7cc1658bfd56cd0a4105dd6337fc?method=download&shareKey=af063328bb91ec681efbd2eeb22534c8)]
结束码
主码 | 子码 | 描述 | 问题原因 | 解决方法 |
00:正常情况 | 00 | 正常结束 | -- | --- |
01 | 服务被取消 | 服务被取消 | 检查PLC目标节点容量或数据连接状态 | |
01:本地节点错误 | 01 | 本地节点错误 | 本地节点不在网络中 | 将目标节点添加到网络中 |
02 | 令牌超时 | 超出最大节点地址 | 设置本地节点小于最大节点地址 | |
03 | 重试失败 | 在指定的重试次数内,发送失败 | 测试通信是否正常 | |
04 | 发送的帧太多 | 超出设置的最大发送值 | 循环发送或重设最大发送值 | |
05 | 节点地址错误 | 节点地址设置错误 | 检查旋转开关的设置,以确保地址在范围内,并且每个地址只在同一个网络中设置一次 | |
06 | 节点地址重复 | 相同的节点地址在同一个网络中设置两次 | 更改相同地址中的节点地址 | |
02:目标节点错误 | 01 | 目标节点不在网络中 | 目标节点不在网络中 | 将目标节点添加到网络中 |
02 | Unit missing | There is no Unit with thespecified unit address. | Check the destination unit address | |
03 | Third node missing | The third node does not exist. | Check the unit address of the third node. Check the node address of the third node in the send data for CMND(490). | |
Broadcasting was specified. | Specify only one node for the third node. | |||
04 | Destination node busy | The destination node is busy. | Increase the number of retries or review the system so that the destination node does not receive so many messages. | |
05 | Response timeout | The message was destroyed by noise. | Increase the number of retries or test communications between nodes to see if there is too much noise. | |
The response monitor time is too short. | Increase the length of the response monitor time. | |||
The send/receive frame was discarded. | Take appropriate measures based on the error history. |
注:结束码未完,详见w342-e1-16_cs1_cj1_cp1_com_cmd.pdf中5-1-3 End Code章节中
通信手册下载地址:Ethernet Units Operation Manual
最后
以上就是精明小笼包为你收集整理的欧姆龙FinsTcp通信详解(一)--PLC常用命令格式的全部内容,希望文章能够帮你解决欧姆龙FinsTcp通信详解(一)--PLC常用命令格式所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复