欧姆龙PLC HostLink协议整理

1、常用的存储器功能区

CIO:

输入继电器  272 点(17 CH) 0.00~16.15

输出继电器  272 点(17 CH) 100.00~116.15

内部辅助继电器  4,800 点(300 CH) 1200.00~1499.15 (1200~1499 CH)

37,504 点(2,344 CH) 3800.00~6143.15 (3800~6143 CH)

内部辅助继电器:

8,192 点(512 CH) W000.00~W511.15  (W0~W511 CH)

暂时存储继电器:

16 点 TR0~TR15

保持继电器:

8,192 点(512 CH) H0.00~H511.15 (H0~H511 CH)

特殊辅助继电器:

只读(不可写入) 7168 点(448 CH) A0.00~A447.15 (A0~A447CH)

可读/写 8192 点(512 CH) A448.00~A959.15 (A448~A959 CH)

定时器:

4,096 点 T0~T4095

计数器:

4,096 点 C0~C4095

DM 区:

32K 字 D0~D32767

数据寄存器:

16 点(16 位) DR0~DR15

变址寄存器:

16 点(32 位) IR0~IR15

任务标志:

32 点 TK0000~TK0031

2、HostLink串口测试典型设置:9600 E-7-2

3、Hostlink通讯协议有两种模式:C-mode和FINS

1.Cmode:专用于hostlink通讯指令,采用的是ASCII码,适用于所有OMRON的PLC通讯。只能上位机发出指令给CPU,CPU无法主动发数据给上位机。

2.FINS:采用的二进制码,适用于新开发的PLC,可用在多种网络设备(Controller  Link,  Ethernet,  etc),可被 CPU、IO模块、上位机主动发出,不同的指令分别适用于不同的信息接受单元。有两种链接协议:CMND和hostlink,当上位机是做发送源时,必须采用hostlink协议。

4、通信协议报文整理

HostLink通讯协议的数据,由4部分组成。

1. 头代码

2. FINS命令

3. 异或校验

4. 结束码

以下的数据用于串口调试工具下发给PLC,所以以下由上述的1、2部分组成

头代码:红色      FINS命令:蓝色

@00FA0000000000101B00064000001

红色部分数据分析:

@后的1-2位,为PLC地址,默认PLC地址为0,可设定0--31

@后的FA为头编码,可为”FA”  “RD”  “WR”

@后的第5位为等待时间,默认为0*10ms

后面的数据从右到左依次是:ICF\DA2\SA2\SID各占一个字节默认为00,具体设定可参照HostLink(具体可参考 HOSTLINK 通讯参考手册 W342-E1-15 第 3-3-3 节)

操作示例

(1)读取CIO100一个字

@00FA0000000000101B00064000001

读取:0101    写入:0102

功能码B0:指定相应寄存器类型 (详见附表1)

006400: 0064为存储器的编号(16进制的0064为10进制的100)

0064后的00为存储器的位(HEX 00)

0001:读取1个字

(2)写CIO100.05-100.09位地址

@00FA00000000001023100640500050101000001

0102:写数据

31:W存储区

006405:100.05(十进制100.05)

0005:连续写5个位

0101000001:写5个位的数据

(3)下发数据:@00FA000000000010231001E06000100

返回数据:@00FA00400000000102000040*\CR

下发的内容:写数据(0102)到W存储区(31)的W30寄存器(001E)寄存器W30.06(06),连续写1个字节(0001)写的内容为0(00)

返回的内容:返回之前的操作为写(0102),数据正常写入(0000)。数据后面附带的(*\CR)为异或校验的结束符。

(4)读写D存储区

RD指令命令格式

@00RD10230006

读取站00地址为W1023的0006个字

5、报文格式

欧姆龙CPM1A型plc与上位计算机通信的顺序是上位机先发出命令信息给PLC,PLC返回响应信息给上位 机。每次通信发送/接受的一组数据称为一“帧”。帧由少于131个字符的数据构成,若发送数据要进行分割 帧发送,分割帧的结尾用CR码一个字符的分界符来代替终终止符。发送帧的一方具有发送权,发送方发送 完一帧后,将发送权交给接受方。

发送帧的基本格式为:

@

机号

识别码

正文

FCS

终止符

其中:

@ ——为帧开始标志;

机号——指定与上位机通信的PLC(在PLC的DM6653中设置);

识别码——该帧的通信命令码(两个字节);

正文——设置命令参数;

FCS——帧校验码(两个字符),它是从@开始到正文结束的所有字符的ASCⅡ码按位异或运算的结果;

终止符——命令结束符,设置“*”和“回车”两个字符表示命令结束。

响应的基本格式为:

@

机号

识别码

结束码

正文

FCS

终止符

其中:

@ ----为帧开始标志;

机号----应答的的PLC号,与上位机指定的PLC号相同;

识别码----该帧的通信命令码,和上位机所发的命令码相同;

结束码----返回命令结束有无错误等状态;

正文——设置命令参数,仅在上位机有读数据时生效;

FCS——帧校验码,由PLC计算给出,计算方法同上;

终止符——命令结束符。

6、注意点

通讯协议如果是ASCII 码传输,则  1 WORD data = 4 BYTE character

即:1个字二进制数,采用AS II码传输 ,则会转为4个字节AS II码去传输

word是计量单位,对应16bit=2字节,字节≠字符,

character是字符,可容纳一个1字节ASII码,也可以容纳一个unicode编码的2字节汉字。

7、131个最大字符由来

按照以下进行命令通讯,则根据官方手册确定命令格式如下:

①起始符@,该符号必须置于每个命令的开头;//1个 ASCII 码=1字节

②节点号即PLC单元号,用于辨识PLC,范围为0~30(BCD数);//2个 ASCII 码

③命令符即发送命令的目的,设置2个字符的命令代码;//2个 ASCII 码

④操作内容表示命令符操作的参数,命令不同,内容也不一样,最多31word;//31*4=122个ASCII 码

⑤校验符为FCS校验,对校验的内容进行异或运算,结果为2个字符;//2个 ASCII 码

⑥结束符为*号+回车键;//*号和回车各是1个,共2个 ASCII 码

统计1+2+2+122+2+2=131个 ASCII 码,即131字符。

欧姆龙PLC HostLink协议整理的更多相关文章

  1. 欧姆龙plc通讯协议格式

    欧姆龙CPM1A型plc与上位计算机通信的顺序是上位机先发出命令信息给PLC,PLC返回响应信息给上位 机.每次通信发送/接受的一组数据称为一"帧".帧由少于131个字符的数据构成 ...

  2. MODBUS协议整理——功能码简述

    1.Modbus简介——来自维基百科 Modbus是一种串行通信协议,是Modicon于1979年,为使用可编程逻辑控制器(PLC)而发表的.Modbus是工业领域通信协议的业界标准,并且现在是工业电 ...

  3. c#基于TCP/IP、CIP协议的欧姆龙PLC通信

    一.关于CIP协议 CIP通信是Common Industrial Protocl(CIP)的简称,它是一个点到点的面向对象协议,能够实现工业器件(传感器,执行器)之间的连接,和高等级的控制器之间的连 ...

  4. 【转】常用PLC通讯协议

    三菱FX系列PLC通讯测试 发送帧(Hex): 起始(STX) 02 命令(CMD) 30 首地址(ADDRESS) 30 30 41 30 字节数(BYTES) 30 31 终止(ETX) 03 校 ...

  5. AHB协议整理 AMBA

    本文对AHB协议作了简单整理,整理自两篇文章: AHB总线协议 AHB重点难点总结 1. 简介 AHB总线规范是AMBA总线规范的一部分,AMBA总线规范是ARM公司提出的总线规范,被大多数SoC设计 ...

  6. SIP协议整理

    本文记录开发.实现IMS项目时,整理的SIP协议基础知识:若有侵权,请告之. SIP协议 1.      SIP协议简介 SIP是一个应用层的控制协议,可以用来建立.修改.和终止多媒体会话(或者会议) ...

  7. HTTP 协议整理(转)

    HTTP 协议 作为web开发人员,了解一些http协议的知识很有必要.本文简单介绍了HTTP协议的知识,若有错误的地方,望大家斧正. 1.HTTP协议是什么? http协议是一个应用层的协议.规定了 ...

  8. 基于ModBus-TCP/IT 台达PLC 通讯协议解析

    客户端发送:19 B2 00 00 00 06 06 03 00 27 00 02 上面是modbus客户端发出的报文内容,为modbus tcp/ip协议格式,其前面的六个字节为头字节( heade ...

  9. HTTP协议整理

    一.概念 1.HTTP协议:即超文本传输协议(Hypertext transfer protocol).是一种详细规定了浏览器和Web服务器之间互相通信的规则,它允许将超文本标记语言(HTML)文档从 ...

随机推荐

  1. Python - 如何将 list 列表作为数据结构使用

    列表作为栈使用 栈的特点 先进后出,后进先出 如何模拟栈? 先在堆栈尾部添加元素,使用 append() 然后从堆栈顶部取出一个元素,使用 pop() # 模拟栈 stack = [1, 2, 3, ...

  2. Python - 面向对象编程 - 实战(5)

    前言 主要是针对静态方法.类方法.实例方法.类属性.实例属性的混合实战 需求 设计一个 Game 类 属性 定义一个类属性 top_score 记录游戏的历史最高分,这个属性很明显只跟游戏有关,跟实例 ...

  3. Git 系列教程(6)- 查看 commit 提交历史

    查看提交历史 在提交了若干更新,又或者克隆了某个项目之后,如何查看提交历史 git log 官方栗子 运行下面的命令获取该项目: git clone https://github.com/scha 运 ...

  4. window创建l2tp

    windows上创建一个L2TP的隧道连接 进入控制面板,打开"网络和共享中心",如下图,之后点击"设置新的连接或网络" 进入到"设置连接或网络&qu ...

  5. centos7关于防火墙的一些操作

    防火墙相关 # 检查防火墙状态 systemctl status firewalld # 开启防火墙 systemctl start firewalld # 关闭防火墙 systemctl stop ...

  6. CUDA 矩阵乘法终极优化指南

    作者:马骏 | 旷视 MegEngine 架构师 前言 单精度矩阵乘法(SGEMM)几乎是每一位学习 CUDA 的同学绕不开的案例,这个经典的计算密集型案例可以很好地展示 GPU 编程中常用的优化技巧 ...

  7. 类型定义VS类型别名

    类型定义是在当前包中的一直存在的.输出%T,发现类型前面都有main.前缀 类型别名,其实还是它的根本类型,别名只存在在代码中.编译后就不存在了,还是根本类型.

  8. Consul+Ocelot+Polly在.NetCore中使用(.NET5)-Consul服务注册,服务发现

    环境 .NET5,Consul_v1.10.2 一.简介 在微服务中利用Consul可以实现服务的注册,服务发现,治理,健康检查等. Web调站点需要调用多个服务,如果没有Consul,可能就是Web ...

  9. dede新增字段调用方法

    各位在使用{dede:channel }标签的时候,难免会遇到因为现在字段不能满足业务需求,需要新增的情况(具体怎么新增字段自行百度). 但是新增的字段通过DEDE的标签是不能直接使用的,现在博主介绍 ...

  10. Java面向对象系列(8)- Super详解

    场景一 场景二 场景三 场景四 注意:调用父类的构造器,super()必须在子类构造器的第一行 场景五 场景六 super注意点 super调用父类得构造方法(即构造器),必须在构造方法得第一个 su ...