科威PLC通过自由协议与深圳传动之星变频器通信说明
第1节 传动之星系列变频器串口通讯协议
一、适用网络
单监控主机多变频器从机控制网。即单主多从方式。
单监控主机单变频器从机控制网。即单主单从方式。
单监控主机可以由变频器代替,能实现同步的启动和停止。
二、物理接口
1)接口方式
RS485/232接口,异步,半双工
2)数据格式
1位起始位、8位数据位、无奇偶校验位、1位停止位
1位起始位、8位数据位、偶校验位、1位停止位
1位起始位、8位数据位、奇校验位、1位停止位
3)波特率
300bps 600bps 1200bps 2400bps 4800bps 9600bps 19200bps 38400bps
三、通讯协议功能
通过通讯协议格式建立主机和变频器之间的相互访问,达到控制变频器的目的。
四、通讯方式
1)上位机为主机,主机可为计算机、PLC可编程控制器等,变频器为从机。采用主机轮询,从机应答的点对点通讯方式。主机广播时,从机不允许应答。
2)利用键盘设定变频器串行接口通讯参数,包括本机地址(从站地址),波特率,串行接口地址等。
3)为保证半双工的可靠工作,发送数据帧与接收数据帧之间时间间隔应不小于5ms,数据帧的字节之间的时间,间隔应不小于1ms。
五、通讯出错
通讯时,若出现校验和错误或数据超出范围,从机变频器将发送报错数据包,并准备接收下一帧数据。
六、协议数据包格式格式
发送顺序
定义 头地址区状态区命令区代码区数据区校验尾
发送字节 1 2 2 2 2 4 21
注意:除去数据包头和数据包尾其他数据都要转化为ASCⅡ码。字节计算方法是除去数据包头和数据包尾各算一个字节,其他数据都要转化为ASCⅡ码后‚一个ASCⅡ码表示一个字节。例如:1号从机地址为01H,则高位ASCⅡ码30H,低位ASCⅡ码31H。共两个字节。
七、协议格式解释(以下提到的D99,D100,D101,D102等数据都是PLC中的地址)
1)数据包头=7EH
数据包的起始字节,不用转换为ASCⅡ码,记为一个字节。
2)D99=从机地址
数据含义:变频器为从机,变频器的本机地址即为从机地址。
发送方式:将从机地址的高4位和低4位拆分并转换为ASCⅡ码,先高后低发送。
例如:1号从机地址为01H,则高位ASCⅡ码30H,低位ASCⅡ码31H。共两个字节。先发送30H,再发送31H共两个字节,其他字节的发送方式与此一致。
3)状态代码(编程时发送包里状态码永远置为00H,而接收包里为其他的6个状态码,具体是哪个要看是变频器所处的状态)
数据含义:从机变频器的状态代码。即参数设定状态、运行状态(01H)、停车状态(02H)、故障状态(03H)和工厂测试状态,接收的数据帧中ASCⅡ码有错(90H),数据或命令超出可设定的范围(80H),运行中该参数不可修改(70H)
先高后低发送。
状态代码定义:
00H=保留
01H=从机运行
02H=从机停车
03H=从机故障
90H=接收的数据帧中ASCⅡ码有错误
80H=数据或命令超出可设定的范围
70H=运行中该参数不可修改
其他=预留
4)D100=命令代码
数据含义:主机发送的命令代码,对从机进行相应操作,如读、写、启动、停车、清除故障等。
发送方式:先高后低发送。
命令代码定义:
00H=变频器运行状态查询
01H=启动变频器运行
02H=变频器停车
03H=复位变频器故障
04H=读对应功能代码内容
05H=写对应功能代码内容
06H=读取监视参数
07H=读取历史故障信息
08H=恢复默认值
09H=机给定频率设定
其他=非法
5)D101=数据地址
数据含义:数据地址的定义,即变频器的功能代码地址编号(参见功能代码表及意义)。
发送方式:将功能代码的高4位和低4位拆分并转换为ASCⅡ码,先高后低发送。
6)D102=数据信息高字节,D103=数据信息低字节
数据含义:数据信息的定义,范围:0-32000。无小数点,是否为小数和有几位小数见功能代码说明,若功能代码内容为10.00,发送的数据为1000,转换成16进制为03E8H。
数据类型:十六进制,双字节。
发送方式:先发高字节,再发低字节,将数据信息双字节的高4位和低4位拆分并转换为ASCⅡ码,先高后低发送。
若发送16进制的03E8H,则依次发送30H,33H,45H,38H
7)校验码
数据含义:数据帧中,从从机地址至数据信息12个字节ASCⅡ码值的累加和的低字节。
8)数据包尾=0DH
第2节 科威PLC自由协议通信说明
一、自由协议收发函数
通过对通信格式字D8120的设置来完成通信。更多具体示例参见科威PLC《编程手册》第十一章<自由协议说明及应用>
1〕相关标志位及寄存器
特殊数据寄存器
特殊数据寄存器 描述
D8120 通信格式
D8121 待发送字节数
D8122 发送剩余字节数
D8123 待接收字节数
D8124 已接收字节数
D8125 接收起始符
D8126 接收终止符
D8127 发送接收超时
D8128 发送起始单元
D8129 接收起始单元
D8130 超时剩余时间
特殊辅助继电器
特殊辅助继电器 描述
M8120 奇偶校验错标志
M8121 发送请求标志
M8122 发送成功标志
M8123 接收请求标志
M8124 接收成功标志
M8125 接收起始符标志
M8126 接收终止符标志
M8127 发送接收超时标志
2〕自由协议发送函数 UART1_SEND
功能:将设置好的数据等信息进行发送。
函数号:D8200=29 函数调用:M8200
3〕自由协议接收函数UART1_REV
功能:将设置好的数据等信息接收。
函数号:D8200=30 函数调用:M8200
二、自由协议的通信格式
自由协议的通信格式由D8120控制,在运行过程中,根据通信对象的不同,可以改变控制字。但专用协议和自由协议,在运行时不允许相互切换。
嵌入式PLC串口1通信,一旦选择专有协议,其各项通信指标是固定的。只有选择自由协议,各项通信参数才根据D8120而变化。
专有协议有主从站设置和地址设置类信息,而自由协议的的主从信息、地址信息是隐含在编程中。如,主从信息表现在主动发信息还是被动发信息的编程上,地址信息包含在规划的报文格式中及解读报文的编程中。
D8120的协议选项(D8120_Bit14),决定是自由协议还是专有协议,其他选项都是针对自由协议的。当选择专有协议时,其他各项可以不选。
嵌入式PLC每次上电,D8120都有一个默认初值D8120=H6881,也就是默认选择为专
有协议。当选择为自由协议时,才需要对D8120进行重新赋值。
如D8120=H0431,表示自由协议,发送结束自动转接收,通信速率为9600bps,7位数据,无奇偶校验。
自由协议的通信格式总共是11位,其中起始位1位,数据位9位(B0----B7+TB8/RB8),1停止位,如图所示。
嵌入PLC与其它控制器通信,如与计算机通信,以自由协议方式,9600bps速率,发送自动转接收为例,可选设置项如下:
①、7位数据+无奇偶校验+1停止位: 请按第②种情况设置。
②、7位数据+无奇偶校验+2停止位 (Bit7=1) D8120=H0438
③、7位数据+奇校验+1停止位 (Bit7=奇校验) D8120=H0432
④、7位数据+偶校验+1停止位 (Bit7=偶校验) D8120=H0436
⑤、7位数据+奇校验+2停止位 (Bit7=奇校验,TB81/RB81=1) D8120=H043A
⑥、7位数据+偶校验+2停止位 (Bit7=偶校验,TB81/RB81=1) D8120=H043E
⑦、8位数据+无奇偶校验+1停止位 D8120=H0431
⑧、8位数据+无奇偶校验+2停止位 (TB81/RB81=1) D8120=H0439
⑨、8位数据+奇校验+1停止位 (TB81/RB81=奇校验) D8120=H0433
⑩、8位数据+偶校验+1停止位 (TB81/RB81=偶校验) D8120=H0437
⑾、8位数据+奇校验+2停止位: 请按第⑨种情况设置。
⑿、8位数据+偶校验+2停止位: 请按第⑩种情况设置。
三、自由协议通信中常用功能函数
1〕常用功能函数
函数号(25)+函数名(ASCII_HEX函数)+功能说明(将指定寄存器的ASCII码转换为十六进制数HEX);
函数号(26)+函数名(HEX_ASCII函数)+功能说明(将指定寄存器的十六进制数HEX转换为ASCII码) ;
函数号(27)+函数名(BYTE_ BYTE函数)+功能说明(将指定寄存器的字进行拆分和组合);
函数号(28)+函数名(CRC函数)+功能说明(将和校验区ASCII码的十六进制数相加后,取后两位字符);
函数号(29)+函数名(自由协议发送函数)+功能说明(将设置好的数据等信息进行发送);
函数号(30)+函数名(自由协议接收函数)+功能说明(将设置好的数据等信息接收);
2〕自由协议相关函数
在工控通信中,根据不同的情况,各工控厂家有不同的通信协议。有的以16进制的方
式传输,有的以ASCII码传输,有的以BCD码传输;校验方式有和校验,异或校验;传输顺序有的从高字节开始,有的从低字节开始;传输单位一般是以字节为单位,而PLC在梯形图中多以字为单位。而自由协议的发送区和接收区是以字节为单位的连续区。为适应各家协议,必须有相关的辅助函数,才能更好发挥自由协议的作用。
辅助函数只针对数据寄存器区。
1.ASCII码字符转HEX数值 (函数号:25)
将ASCII码表示的“0---9,A---F”字符转换成16进制的数值0---9,A---F。如ASCII值为31 32 33 42 (表示字符“123B”),经函数转换后成HEX值为 123B,四个字节变成二个字节。
2.HEX数值转换成ASCII码字符 (函数号:26)
将HEX表示的数值变换为ASCII码,与25号函数功能相对。如将HEX值AB23转换为ASCII码字符“AB23”,ASCII值为41 42 32 33。
3. 区域移动 (函数号:27)
将字节拼成字,或将字拆成字节,或字区的移动。如,填写发送字节时,将字节赋给字单元的低字节,我们会觉得方便;但对发送而言,发送的是连续字节区,因此发送前,又必须将不连续的低字节变成连续的字节,即连续的字区。
4.区域求和 (函数号:28)
在有和校验的协议中,以字节为单位进行求和运算。因此对接收字可能需拆成字节,而后进行求和运算。如11H 22H 33H 44H 55H 66H 77H 的7个字节,求和结果为01DCH。如果只传两个字的ASCII码值,则只传“DC”,ASCII码值为44H 43H。
以上提供的辅助函数在自由协议方式下,使用的频率较高,辅助函数的调用方式也大体相同。
入口参数:输入的元件号 (D8201):如D8201=K100,表示从D100开始。
输入的有效字节数 (D8202):如D8202=K10,表示10个字节。
起始字节高/低选择 (M8201):如SET M8201表示从低字节开始。
字/字节有效选择 (M8202):如SET M8202表示字节方式。
出口参数:输出元件号 (D8203):如D8203=K1000,表示结果存在D1000超始区。
起始字节高/低选择 (M8203):如SET M8203表示从低字节开始。
字/字节有效选择 (M8204):如SET M8204表示字节方式。
以上函数的具体示例参见科威PLC《编程手册》第八章<常用功能函数说明>
第3节 科威PLC通过自由协议与深圳传动之星变频器通信实现
一、程序流程图
二、资源分配
1)资源分配总体情况
字元件(D0〜D4)+位元件(M11〜M42)+标签P(P1,P10〜P19)+定时器(T0,T1,T3);
字元件(D10〜D49)+位元件(M100,M110,M120,M130,M140,M150,M160,M170,M180,M190);
字元件(D99〜D103)+位元件(M1000〜M1016(仅在子程序P1中);
2)主程序里包含的资源
字元件(D0〜D4,D99)+位元件(M100,M110,M120,M130,M140,M150,M160,M170,M180,M190)+标签P(P1,P10〜P19)+定时器(T0,T1,T3);
字元件(D10〜D49)+位元件(M0〜M4,);
3)子程序P1
字元件(D49,D23,D24)+位元件(M1000〜M1016(仅在子程序P1中)+标签P(P1,P10〜P19);
4)子程序P10〜P19
字元件
D28〜D31
D100〜D103
二、读写方法举例
1)读操作流程:
2)写操作流程:
3)假设要读取的1#变频器的“给定[频率”F0-002=50HZ=5000*0.01HZ(最小单位)
解析:读1#变频器D99=01,读命令代码D100=“04H”,参数的序号D101=“002”(10进制)=数据地址=“02H”,读命令代码对应程序中定义的M140=ON,填写后D4=1388H,同时还出现以下的应答报文格式:
注意:表中D40H表示D40的高字节,D40L表示D40L的低字节,其他定义也一样
4)假设要向1#变频器写“给定[频率”F0-002=50HZ=5000*0.01HZ(最小单位)
解析:写入1#变频器D99=“01H”,写入的命令代码D100=“05H”,命令代码对应程序中定义的M150=ON,参数的序号D101=“002”(10进制)=数据地址=“02H”,数据信息=“1388H”,所以数据信息高字节D102=13H,数据信息高字节D102=88H,填写后将出现以下的应答报文格式:
注意:表中D40H表示D40的高字节,D40L表示D40L的低字节,其他定义也一样
使用下表说明:要求填写序号(D101)是指功能码去掉头三个字符F0-后,留下的三个字符的10进制,如F0-000,去掉头三个字符F0-后留下000就是所说的功能序号,数值大小也等于表中16进制表示的“数据地址”所以填序号实际上就是填数据地址。
文章版权归西部工控xbgk所有,未经许可不得转载。