科威PLC通过自由协议与深圳传动之星变频器通信说明.docx
《科威PLC通过自由协议与深圳传动之星变频器通信说明.docx》由会员分享,可在线阅读,更多相关《科威PLC通过自由协议与深圳传动之星变频器通信说明.docx(21页珍藏版)》请在冰豆网上搜索。
科威PLC通过自由协议与深圳传动之星变频器通信说明
科威PLC通过自由协议与深圳传动之星变频器通信说明
第1节传动之星系列变频器串口通讯协议
一、适用网络
单监控主机多变频器从机控制网。
即单主多从方式。
单监控主机单变频器从机控制网。
即单主单从方式。
单监控主机可以由变频器代替,能实现同步的启动和停止。
二、物理接口
1)接口方式
RS485/232接口,异步,半双工
2)数据格式
1位起始位、8位数据位、无奇偶校验位、1位停止位
1位起始位、8位数据位、偶校验位、1位停止位
1位起始位、8位数据位、奇校验位、1位停止位
3)波特率
300bps600bps1200bps2400bps4800bps9600bps19200bps38400bps
三、通讯协议功能
通过通讯协议格式建立主机和变频器之间的相互访问,达到控制变频器的目的。
四、通讯方式
1)上位机为主机,主机可为计算机、PLC可编程控制器等,变频器为从机。
采用主机轮询,从机应答的点对点通讯方式。
主机广播时,从机不允许应答。
2)利用键盘设定变频器串行接口通讯参数,包括本机地址(从站地址),波特率,串行接口地址等。
3)为保证半双工的可靠工作,发送数据帧与接收数据帧之间时间间隔应不小于5ms,数据帧的字节之间的时间,间隔应不小于1ms。
五、通讯出错
通讯时,若出现校验和错误或数据超出范围,从机变频器将发送报错数据包,并准备接收下一帧数据。
六、协议数据包格式格式
发送顺序
定义头地址区状态区命令区代码区数据区校验尾
发送字节12222421
注意:
除去数据包头和数据包尾其他数据都要转化为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进行重新赋值。
位置选项
OFF时含义
ON时含义
D8120_Bit15
未定义
未定义
D8120_Bit14
自由协议
专有协议
D8120_Bit13
未定义
未定义
D8120_Bit12
未定义
未定义
D8120_Bit11
未定义
未定义
D8120_Bit10
未定义
发送结束自动转接收
D8120_Bit09
未定义
接收终止符有效
D8120_Bit08
未定义
接收起始符有效
D8120_Bit07
D8120_Bit07_06_05_04=xxxx,.波特率选项
xxxx=0000:
1200bpsxxxx=0001:
2400bps
xxxx=0010:
4800bpsxxxx=0011:
9600bps
xxxx=0100:
14400bpsxxxx=0101:
19200bps
D8120_Bit06
D8120_Bit05
D8120_Bit04
D8120_Bit03
1停止位
2停止位
D8120_Bit02
D8120_Bit02_01=xx,.奇偶校验选项。
xx=00:
无奇偶校验;xx=01:
奇校验;xx=11:
偶校验;
D8120_Bit01
D8120_Bit00
7位数据
8位数据
如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值为31323342(表示字符“123B”),经函数转换后成HEX值为123B,四个字节变成二个字节。
2.HEX数值转换成ASCII码字符(函数号:
26)
将HEX表示的数值变换为ASCII码,与25号函数功能相对。
如将HEX值AB23转换为ASCII码字符“AB23”,ASCII值为41423233。
3.区域移动(函数号:
27)
将字节拼成字,或将字拆成字节,或字区的移动。
如,填写发送字节时,将字节赋给字单元的低字节,我们会觉得方便;但对发送而言,发送的是连续字节区,因此发送前,又必须将不连续的低字节变成连续的字节,即连续的字区。
4.区域求和(函数号:
28)
在有和校验的协议中,以字节为单位进行求和运算。
因此对接收字可能需拆成字节,而后进行求和运算。
如11H22H33H44H55H66H77H的7个字节,求和结果为01DCH。
如果只传两个字的ASCII码值,则只传“DC”,ASCII码值为44H43H。
以上提供的辅助函数在自由协议方式下,使用的频率较高,辅助函数的调用方式也大体相同。
入口参数:
输入的元件号(D8201):
如D8201=K100,表示从D100开始。
输入的有效字节数(D8202):
如D8202=K10,表示10个字节。
起始字节高/低选择(M8201):
如SETM8201表示从低字节开始。
字/字节有效选择(M8202):
如SETM8202表示字节方式。
出口参数:
输出元件号(D8203):
如D8203=K1000,表示结果存在D1000超始区。
起始字节高/低选择(M8203):
如SETM8203表示从低字节开始。
字/字节有效选择(M8204):
如SETM8204表示字节方式。
以上函数的具体示例参见科威PLC《编程手册》第八章<常用功能函数说明>
第3节科威PLC通过自由协议与深圳传动之星变频器通信实现
进行参数初始化即填写D10,D25,D26(D99),D27,D28〜D31(D100〜D103)
调用M8200=K26实现HEX到ASCⅡ码转换)(P1)
调用M8200=K28号函数计算和校验码,并把校验码HEX到ASCⅡ码转换
调用M8200=K27号函数实现字节到字转换
调用M8200=K29发送函数,M8200=K30接收函数最后对数据处理即调用M8200=K25号函数把接收到的数据从ASCⅡ码到HEX转换,结果存在D4。
结束
一、程序流程图
二、资源分配
1)资源分配总体情况
字元件
位元件
标签P
定时器
D0〜D4
M11〜M42
P1,P10〜P19
T0,T1,T3
D10〜D49
M100,M110,M120,M130,M140,M150,M160,M170,M180,M190
D99〜D103
M1000〜M1016(仅在子程序P1中)
2)主程序里包含的资源
字元件
位元件
标签P
定时器
D0〜D4,D99
M100,M110,M120,M130,M140,M150,M160,M170,M180,M190
P1,P10〜P19
T0,T1,T3
D10〜D49
M0〜M4,
3)子程序P1
字元件
位元件
标签P
D49,D23,D24
M1000〜M1016(仅在子程序P1中)
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,同时还出现以下的应答报文格式:
M140
字段
报文头
从站地址
状态代码
命令代码
数据地址
数据信息
校验码
报文尾
位置
D40H
D40L
D41H
D41L
D42H
D42L
D43H
D43L
D44H
D44L
D45H
D45L
D46H
D46L
D47H
D
4
7
L
ASCⅡ
7E
30
31
30
32
30
34
30
32
31
3338
38
35
44
0D
备注
16进制
ASCⅡ
16
进
制
注意:
表中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,填写后将出现以下的应答报文格式:
M150
字段
报文头
从站地址
状态代码
命令代码
数据地址
数据信息
校验码
报文尾
位置
D40H
D40L
D41H
D41L
D42H
D42L
D43H
D43L
D44H
D44L
D45H
D45L
D46H
D46L
D47H
D
4
7
L
ASCⅡ
7E
30
31
30
32
30
35
30
32
31
3338
38
35
45
0D
备注
16进制
ASCⅡ
16
进
制
注意:
表中D40H表示D40的高字节,D40L表示D40L的低字节,其他定义也一样
使用下表说明:
要求填写序号(D101)是指功能码去掉头三个字符"F0-"后,留下的三个字符的10进制,如"F0-000",去掉头三个字符"F0-"后留下"000"就是所说的功能序号,数值大小也等于表中16进制表示的“数据地址”所以填序号实际上就是填数据地址。
功能代码的定义表参见科威公司主页:
中的“资料下载”-“PLC应用”。