欧姆龙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. MySQL——日志管理

    一.MySQL日志类型 1.错误:--log--error ---------------------*** host_name.err 2.常规: --general_log host_name.l ...

  2. Mysql - You can't specify target table '表名' for update in FROM clause 错误解决办法

    背景 在MySQL中,写SQL语句的时候 ,可能会遇到 You can't specify target table '表名' for update in FROM clause 这样的错误 错误含义 ...

  3. python-request 实现企业微信接口自动化-1(DDT)

    环境准备 python+requests 读取企业微信api开发文档,得知调用企业微信接口必须先获取企业微信的accesstoken是通过 ("corpid","&quo ...

  4. DOM对象入门

    1.概念 2.script最好是放在后面,等html的文档内容加载完毕,不然获取不到 3.事件基本操作 第一种绑定事件html和js耦合度高,用第二种 4.灯开关事件使用

  5. Vite详解

    vite 目录 一.推荐两个插件插件 Volar Vue 3 Snippets 二.vite简介 优势分析 浏览器支持 三.vite搭建vue3.x项目 1.创建项目 2.集成Vue-Router 3 ...

  6. JS获取DOM元素的八种方法

    JS获取DOM元素的方法(8种) 通过ID获取(getElementById) 通过name属性(getElementsByName) 通过标签名(getElementsByTagName) 通过类名 ...

  7. Markdown主要语法及使用

    最近,我发现使用Markdown这一标记语言的人越来越多了,我也去试了一下,感觉确实在编辑文档上方便了很多.于是我将一些关于Markdown的语法和编写时的快捷键整理在这里,方便以后查阅,也欢迎评论区 ...

  8. 六种多线程方法解决UI线程堵塞

    http://blog.csdn.net/oyi319/article/details/6851371 一.六种多线程方法 .NET Framework2.0框架提供了至少4种方式实现多线程,它们是& ...

  9. 基于python2.7 Tkinter 做一个小工具

    1.源码:先写一个界面出来,放需要放入的点击事件的函数 # -*- coding:utf-8 -*- import Tkinter from Tkinter import * import Excle ...

  10. Elasticsearch(ES)分词器的那些事儿

    1. 概述 分词器是Elasticsearch中很重要的一个组件,用来将一段文本分析成一个一个的词,Elasticsearch再根据这些词去做倒排索引. 今天我们就来聊聊分词器的相关知识. 2. 内置 ...