请问LECOM-A/B规约的意思

能否说一下自己对这个问题的研究和高见,谢谢

LECOM-A/B规约
LECOM-A/B规约用于主机和变频器间交换数据。LECOM-A/B规约是在DIN66019,ISO1745和X3.28(2.5和A2、A4版本)的基础上制定的。这些标准彼此相似,都制定了发送系统的发送环节的控制模式。
主机和从机间(变频器)可以以下面三种方式通讯:
接收(RECEIVE,参看9页)
发送(SEND,参看11页)
广播/多级广播(BROADCAST/MULTICOAST参看12页)
一、 基本概念
通讯单元采用ASCII方式进行通讯。
0 1 2 3 4 5 6 7 8 9 A B C D E F
0 NUL SOH STX ETX EOT ENQ ACK BEL BS HT LF VT jFF CR SO SI
1 DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US
2 ` ` ! “ # $ % & ' ( ) * + , - . /
3 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
4 @ A B C D E F G H I J K L M N O
5 P Q R S T U V W X Y Z [ \' ] ^ _
6 `‘ a b c d e f g h i j k l m n o
7 p q r s t u v w x y Z { | } ~

例如:
“EOT”=04hex=4dec
符号“1”=31hex=49dec
代码号(C1,C2)
标准寻址
代号及其参数的含义参看代号表。当传送数据时,代码号按下列方法进行编码 :
通过以下计算方法可以由代码得到两个ASCII码十六进制(取值范围:0~6229)( (取值范围:48dec~127dec)
C1=整数((余数(代码/790))/10)+48dec
C2=余数(余数(代码/790)/10)+整数(代数/790)*10+48dec
整数是小数点前在数字,余数是一个整数。
例如:13/5=2余3
则:整数(13/5)=2
余数(13/5)=3
例如:
把代码1002转化为ASCII代码C1和C2:
C1ASCII=整数((余数(1002/790))/10)+48=整数(212/10)+48
=21+48=69=45hex=“E”ASCII
C2ASCII=余数(余数(1002/790)/10)+整数(1002/790)*10+48
=余数(212/10)+1*10+48
=2+10+48=60=3Chex=“<”ASCII
如果主机把C1002发送到变频器,则其代码会转化成ASCII码串“E<”。
通过代码库寻址
以前的LECOM-A/B通讯模块由于是用一个字节作为代码数,因此代码只能在0~255间寻址。使用代码库可以扩展通讯模块的寻址范围。0~255范围内的代码作为所有代码的一个窗基准。可以通过代码0249(代码库)来实现扩展代码范围。代码C0249通过249来实现,这依赖于当前代码库的设定。
以下设定:
代码库 代码偏移量 代码范围
0 0 0~255
1 250 250~505
2 500 500~755
3 750 750~1005
4 1000 1000~1255
5 1250 1250~1505
6 1500 1500~1755
7 1750 1750~2005
注:
代码库仅当使用标准寻址时有效。当相应的代码偏移量通过代码库选定时,若代码的数字超过255,则代码数范围就相应增加。
例如:
设定代码C0249为(整数(1002/250)=4来寻址代码1002,C1002就可以通过代码1002得到。
通过输入选择来寻址
简单的LECOM-A/B单元,只能使用标准寻址,不能寻址代码的子代码。输入选择C0048可以寻址代码的子代码。使用标准寻址 时,C0248可以 通过数字248得到,这依赖于当前代码库的设定和子代码的使用。
例如:
在C0248中输入1来寻址JOG3作为其子代码。那么当使用C39 时,也可以寻址其子代码1了。
注意:
当使用C0248得到一个子代码后,应把C0248复位为0,避免使用此代码时“错误”寻址。
扩展寻址
通过扩展寻址可以直接寻址参数。
! CH1 CH2 CH3 CH4 SC1 SC2
说明:
! ASCII码符号“!”=21hex=33dec,表示使用扩展寻址
CH1~CH4 16进制代码,每一个符号对应代码中的半个字节(CH1是高位,CH2低位)
SC1~SC2 16进制子代码,每一个符号对应代码中的半个字节(SC1是高位,SC2低位)
以下符号可以以ASCII码的形式显示。
ASCII 0 1 2 3 4 5 6 7 8 9 A B C D E F
DEC 48 49 50 51 52 53 54 55 56 57 65 66 67 68 69 70
HEX 30 31 32 33 34 35 36 37 38 39 41 42 43 44 45 46
使用这些符号可寻址0~65535间的代码。每个代码最多可以255子代码。
例如:
1002=“!03EA00”
参数值(V1~Vn)
参数值可以以下面四种结构发送:
● ASCII码的十进制形式(VD)
- VK1 VK2 VK3 VK4 VK5 VK6 . NK1 NK2 NK3 NK4
● ASCII码的十六进制形式(VH)
H VH1 VH2 VH3 VH4 VH5 VH6 VH7 VH8
● 字符串形式(VS)
S VS1 VS2 VS3 VS4 VS5 VS6 ... VS240
● 数据块的八进制形式(VO)
O VO1 VO2 VO3 VO4 VO5 VO6 ... VO240
说明:
VK1~VK6 整型数
十进制小数点(可选)
NK1~NK4 十进制代码(可选)
H(48hex) 表示以ASCII码的十六制形式传送数据
VH1~VH8 1~8个16进制符号(0~9,A~F)
S(53hex) 表示以字符串的形式传送参数数据
VS1~VS240 1~12个可见ASCII码字符(不含控制字符)
O(4Fhex) 表示以8进制字符串的形式传送数据
VO1~VO240 十六制代码的数据块,每个符号对应于数据块中的一位
十进制形式ASCII码的参数值(VD)
十进制形式ASCII码 (VD)用的最多。参数值由以下几部分构成:
1个符号位(可选)
6个数字位(逗号之前VK1~VK6)
1个十进制小数点(可选)
4个数字位(逗号之后,NK1~NK4)(可选)
在-214748.3648~214748.3647间的数字都可以显示。
注意:
在十进制形式的ASCII码(VD),如果小数点之后没有数据,则十进制小数点不被传送。
十六进制形式的ASCII码中的参数值(VH)
LECOM-A/B规约支持十六进制参数值的传送,其长度如下:
● 2个字符(字节型)
● 4个字符(字/整型)
● 8个字符(双字/长整型)
在ASCII码的16进制形式中,VH1是最高位,VH8是16进制的最低位。
字符串形式中的参数值(VS)
使用字符串形式发送字符串每次最多可发送20个字符。
LENZE变频器只能发送字符串参数(如C200)。
八进制形式的参数值(VO)
LECOM-A/B规约包含8进制字符串,可用来发送数据块。
字符的顺序对应于存储器中的数据顺序(上升顺序),比如,首先发送的字符是数据块低地址的四位。数据的存储形式和Intel存储器的形式一样,如下定义:
字节 1、高四位(bit)
2、低四位
字 1、高字节
2、低字节
双字 1、高字
2、低字
模块地址(AD1、AD2)
一个或多个总线分站(分机)可以通过模块寻址来得到两个字节长的地址(AD1、AD2)。LECOM-A/B规约支持广播报文,一个广播报文可以被发送到一组或其他的总线分站,因此,通过单元的地址为预定义的(见广播报文12页)。一个模块的地址结构如下:
AD1 AD2
说明:
AD1 从机地址十位ASCII码(0~9,30~39hex)
AD2 从机地址1位ASCII码(0~9,30~39hex)
块检查符号(BCC码)
块检查符号(BCC码)用于存储发送的数据,根据DIN66219产生(参看第 节)。
BBC码由发送(SEND)报文中如下的一串字符通过异或产生。
● 由控制符STX开始
● 由控制符ETX结束
-BCC码数字范围00~FFhex
EOT AD1 AD2 STX C1
C2 V1 ... Vn ETX
BCC
BCC
或扩展寻址得到
STX !
CH1 CH2 ... SC2 ETX
BCC
BCC
报文回答
Lenze变频器必须对主机的命令作一个回答,但广播报文例外,不需对主机的命令作回答。
Lenze变频器的回答形式有两种:
● 正面回答(ACK=06hex),以下情况时:
-保存数据块时 无错误发生(纵向错误或内部奇偶校验错误)
-识别到了无效命令(在有效地址内)
-变量在可允许的范围内
-变量值已经改变
● 反面回答(NAK=15hex)
-除以上情况之外的其它情况
● 不回答
-发送广播报文
-模块地址不正确
二、接收(RECIVE)
接收命令读取Lenze变频器的参数值。所读取的参数的代码以下面接收报文的结构发送:
EOT AD1 AD2 C1 C2 ENQ
说明:
EOT(04hex) 上一个发送命令结束符
AD1、AD2 从机逻辑单元地址
C1、C2 参数代码(两位ASCII字符)或扩展地址
ENQ(05 hex) 主机请示命令
代码C1、C2和单元地址AD1、AD2的结构及含义参看发送(SEND)一章的内容(见第11页)
报文回答
接收到接收报文(RECEIVE)的变频器作如下回答:
● 变频器对命令进行解码,发送所要求的参数值到主机
STX C1 C2 V1 ••• Vn ETX BCC
● 变频器对命令进行解码,然而在发送过程中以生了校验错误(偶校验)
STX C1 C2 ? ETX BCC
●因代码不存在,变频器不能响应要求
STX C1 C2 EOT
说明:
STX(02hex) 报文开始
C1、C2 参数代码(两位ASCII字符)或扩展地址
V1~Vn 参数值(n个ASCII符号)
ETX(03hex) 报文结束
BCC 块检查符号(00~FFhex)
?(3Fhex) ASCII符号“?”
EOT(04hex) 上一个传输命令结束符
块检查符(BCC码)的结构和含义见基本概念章中相应的内容(见第7页)
接收报文举例:
例1
读地址为1的变频器当前速度的设定值(C046)
主机发送以下命令报文:
EOT 0 1 4 6 ENQ
变频器以以下三种方式中的一种来回答(根据不同的情况):
STX 4 6 3 5 • 4 ETX BCC
有效命令:C46当前值为35 .4(Hz)

STX 4 6 ? ETX BCC
无效命令:数据传送时发生了校验错误(偶校验)

STX 4 6 EOT
无效命令:变频器中不存在C46参数。
例2
读取地址为25的变频器当前的运行状态(代码C068)。
运行状态按位编码,发送时以16进制的形式发送。
主机发送以下报文:
EOT 2 5 6 8 ENQ
变频器回答:
STX 6 8 H 0 9 0 0 ETX BCC
有效应答:参数C068当前值为“0900”。含义如下:
掉闸状态 无效
最大电流 没有达到
快停 无效
脉冲禁止状态 自由
旋转方向 正转
Qmin状态 无效
变频器使能 使能
运行故障 无
通讯故障 无
三、发送(SEND)
发送命令(SEND)用来从主机发送命令到从机。主机以以下结构发送报文:
EOT AD1 AD2 STX C1 C2 V1 ••• Vn ETX BCC
说明:
EOT(04hex) 上一个传输命令结束符
AD1、AD2 从机逻辑单元地址
STX(02hex) 报文开始
C1、C2 参数代码(两位ASCII字符)或扩展地址
ETX(03hex) 报文结束
BCC 块检查符号(00~FFhex)
在报文的文本部分(控制符STX和ETX之间),代码C1、C2和相应的代码值(V1~Vn)从主机传送到从机。
发送报文举例
把地址为34的变频器的最高速度(代码C11)设定为95.2Hz。
主机发送以下报文:
EOT 3 4 STX 1 1 9 5 . 2 ETX BCC
变频器可能以下面两种不同的形式应答:
ACK
命令正确执行,代码C11当前的值设定为95.2Hz。

NAK
命令没有正确,参数值不变。
四、广播/多级传送命令
在一个网络中,广播命令用来在同一时间对所有的从机(多级传送)下命令。广播命令的结构和发送(SEND)报文的结构非常相似,唯一的区别是广播命令不需从机应答。
从机能通过其单元地址选定。下表为广播报表的地址列表:
模块地址
(保留) 每组的分机地址 ASCII符号
AD1 AD2
00 all 0 0
10 11~19 1 0
20 21~29 2 0
30 31~39 3 0
40 41~49 4 0
50 51~59 5 0
60 61~69 6 0
70 71~79 7 0
80 81~89 8 0
90 91~99 9 0
广播报文举例
设定所有的变频器使能禁止(C40=0),让变频器停止。
主机发送以下广播报文:
EOT 0 0 STX 4 0 0 ETX BCC
变频器不作应答。
五、从机响应监视
主机监视所选定的从机。从机必须在规定的时间内作出应答。下列情况下从机对主机不作应答(时间溢出):
● 找不到识别的单元地址
● 在一个或几个字符中(含ENQ字符)检查到了错误(如偶错误);
● 传送线路故障
● 发送广播命令;
● 硬件工作不正常。
如果主机在规定的时间内不能接收到应答,系统会重新尝试发收,但次数是有限的。
六、发送错误
发生传送故障后,主机可以通过读取代码C68的第4~7位获得故障信息。
温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网