M8161=1,为8位运算,意思就是忽略高8位只传送数据的低8位,为什么这么做后面会说到。MOV HOC88D8210是指定通讯格式,它是怎么算出来的,我们看下D8120内容:
D8120内容
D8210是一个16位的数据,根据设定的参数来算计算,比如上述程序的H0C88是怎么来的,看下通讯方式是,波特率9600,7位数据长度,无奇偶校验,停止位是2,控制线是无协议的调制解调器模式(RS485接口):
通讯参数计算
相关指令
串行数据发送RS,16进制转换为ASCII码ASCI,ASCII码转换为16进制数HEX.
RS:该指令是用于通过安装在基本单元上的RS-232C或RS-485串行通信口进行无协议通信,从而执行数据的发送和接收的指令。
RS举例
RS指令用于指定从FX可编程控制器发出的发送数据的起始软元件和数据点数, 以及保存接收数据的起始软元件,和可以接收的Zui大点数,编程按照下列要领:
发送指令
接受指令
ASCII 码使用指定的7 位或8 位二进制数组合来表示128 或256种可能的字符,MODBUS协议有两种传输模式,ASCII和RTU模式, 本次变频器采用ASCII模式传输信号,上一章的HMI控制变频器采用的就是RTU模式。采用ASCII模式, 数据格式M8161选择8位数据模式。
PLC程序
程序大致分为4部分
5.1 变频器功能说明
采用ASCII模式传输数据,在 ASCII模式中,帧头为“:”(“0x3A”),帧尾缺省为“CRLF”(“0x0D”“0x0A”)。在 ASCII方式下,除了帧头和帧尾之外,其余的数据字节全部以 ASCII 码方式发送,先发送高 4 位位元组,发送低 4位位元组。ASCII方式下数据为 8 位长度。对于‘A’~‘F’,采用其大写字母的 ASCII 码。此时数据采用LRC校验,校验涵盖从从机地址到数据的信息部分。校验和等于所有参与校验数据的字符和(舍弃进位位)的补码。
MODBUS报文
ASCII 帧的标准结构
MODBUS对变频器功能说明:
功能说明
程序
程序可以分5部分
6.1通讯设定
就是第3PLC通讯参数的设定的梯形图
6.2 ASCII码转换
ASCII码转换
根据ASCII 帧的标准结构将数据转换为ASCII码,起始符START:3AH
地址Address:就是站号, 两个ASCII码组成, 例如站号1, 地址就是01H,转成ASCII码就是30,31, PLC监控:
程序中显示的是10进制。
功能码Function:就是要写入数据还是读取数据,由两个ASCII码组成,写入是06H, 读取是03H。
功能码地址:就是写入或读取的地址,由两个ASCII码组成。
数据内容DATA:就是要写入或读取的数据内容, 由2n个ASCII码组成。
LRC校验值:LRC检查码,由两个ASCII码组成
结束符END:END Hi=0DH, END Lo=0AH。
RS D0 K17 D50 D15 这条指令就是发送以上内容的,D0起始符,D1D2地址,D3D4功能码,D5D6命令码高位地址,D7D8命令码低位地址,D9D10数据内容高位地址,D11D12数据内容低位地址,D13D14LRC检查码,D15D16结束符。
6.3 写入数据
写入数据
M8122是送信指令, 表示在发送信息,ASCI D200 D500 K4.D200为频率数据,将D200数据转换成ASCII,例如D200=0ABCH,K4就表示D500=0,D501=A,D502=B,D503=C,只转换4位。
D101站号,D102功能码,D103D104功能码高低位地址,D105D106数据内容。
根据变频器的MODBUS功能,我们知道写入频率的地址是2001H,高位20H传到D103,低位01H传到D104,将频率值传送到D105D106, 传送完毕LRC值复位。
这样就完成了写的功能,变频器的正反停功能根据上表依次编程。
6.4 读取数据
由于采用半双工工作,写入和读取不能进行,
数据读取
意思就是读取数据时,必须在送信、回信、写入指令意外完成。查看变频器功能表,读取频率的地址是3000H。
HMI界面:
HMI界面