我是靠谱客的博主 精明小笼包,最近开发中收集的这篇文章主要介绍欧姆龙FinsTcp通信详解(一)--PLC常用命令格式,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

文章目录

    • 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)]

详细说明:

列表内容(十六进制)说明
Header46494E53ASCII码:FINS
Length0000000C从command之后的数据长度
Command00000000
Error code00000000没用,服务器不需要检测错误
Client node address(Fins node address of Fins/Tcp client00000000到000000FE0到254。设置为0,自动获取客户端的Fins节点地址
该命令是在建立Tcp连接之后发送的,当FINS/TCP客户端或服务器建立连接后,再次发送该命令会产生错误,错误代码会通过FINS FRAME SEND ERROR NOTIFICATION命令发送给客户端, 并中断连接。

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)]

详细说明:

列表内容(十六进制)说明
Header46494E53ASCII码:FINS
Length00000014到000007E4从command之后的数据长度,包含FinsFrame
Command00000002
Error code00000000没用,接收结束后不需要检测错误
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命令如下表所示:

类型命令代码名称功能
MRSR
访问I/O存储区0101读内存区读取连续I/O存储区字的内容
0102写内存区写入连续I/O存储区字的内容
0103填充内存区将相同的数据写入指定范围的I/O存储器区
0104多个存储区读取读取指定的非连续I/O存储区字
0105存储区传输将连续存储I/O存储区字内容复制到另外的I/O存储区
访问参数区0201读取参数区读取连续参数区字内容
0202写入参数区写入连续参数区字内容
0203填充参数区将相同数据写入到指定范围参数区域字
改变操作模式0401RUN将CPU单元的操作模式更改为RUN或MONITOR
0402STOP将CPU单元的操作模式更改为编程
读取状态0601读取CPU单元状态读取CPU单元状态
0620(*)STOP读取最大、最小和平均周期时间
错误日志2101错误清除清除错误或错误信息
2102读取错误日志读取错误日志
2103清除错误日志清除错误日志指针

2.2.4 I / O存储器地址标识

区域数据类型CS/CJ/CP/NSJ-seriesCVM1/CV-series占用字节长度
存储区代码存储区地址存储地址存储区代码存储区地址存储地址
DM区DMBit02D0000000到D3276715000000到7FFF0F………………1
DM区DMWord82D00000到D32767000000到7FFF0082D00000到D32767000000到7FFF002

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目标节点不在网络中目标节点不在网络中将目标节点添加到网络中
02Unit missingThere is no Unit with thespecified unit address.Check the destination unit address
03Third node missingThe 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.
04Destination node busyThe destination node is busy.Increase the number of retries or review the system so that the destination node does not receive so many messages.
05Response timeoutThe 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常用命令格式所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(71)

评论列表共有 0 条评论

立即
投稿
返回
顶部