欧姆龙PLC通讯之Hostlink协议
通讯协议是通信双方完成通信或服务所遵循的规则和约定。通讯协议就是通讯设备之间的语言。设备和人一样,有共同语言才能交流。Hostlink协议是欧姆龙公司开发的上位计算机与PLC设备通讯协议,通过串行通讯的方式收、发数据。
发、收数据的报文我们也叫它通讯命令。
通讯命令分为:1、C-code命令的Hostlink。2、FINS命令,又可分为网口(CMND/SEND/RECV)的Hostlink命令和串口的Hostlink命令。这里介绍一下串口Hostlink。
一、串口Hostlink的硬件拓扑结构
串口Hostlink协议支持串口传输,也支持网络传输。
串口传输中上位计算机直接与1台PLC连接(RS232C)或与最多32台PLC组成星型结构(RS-485);网络传输中上位计算机与PLC网络中的其中1台PLC连接,可与网络中的所有CP2E PLC进行数据交换。
二、串口Hostlink协议报文格式
命令帧格式:Hostlink头(@单元号00~31)+Fins命令帧+ Hostlink FCS校验(报文第一个字符开始,由ASCIICodeBIN依次XOR异或算法而得)+ Hostlink尾(*号+回车)。
Time单位为10ms,一般设为0;ICF可设定为00(本地)或80(跨网);DA2目标地址可设为00(CPU)或其它单元号;SA2源地址可设为00(CPU)或其它单元号;SID一般设为00。
命令码是定义好的功能代码。
内存区也由特定的代码表示。
响应帧格式:Hostlink头(@单元号00~31)+Fins命令帧+ Hostlink FCS校验(报文第一个字符开始,由ASCIICodeBIN依次XOR异或算法而得)+ Hostlink尾(*号+回车)。
响就码有以下几种:
“0000”正常完成;“0104”发送数据帧太长(不能超过131个字符);“0105”发送单元号超范围;“0501”目标地址设置错误。
三、报文举例
1、读(0101)CPU单元(00)中的D100~D101中的数据命令,初始地址100转换为十六进制为“0064”,个数为“0002”个,数据内容为“XXXX XXXX”。
响应帧:@ 00FA 00 40 00 00 0001 010000 XXXX XXXX FCS码*回车。
2、将“000F”写入(0102)CPU单元(00)中的D1000中命令,初始地址1000转换为十六进制为“03E8”,数据内容为“000F”。
命令帧:@ 00FA 0 00 00 00 0001 028203E800 0F FCS码*回车。
响应帧:@ 00FA 00 40 00 00 0001 020000 FCS码*回车。