:1800弄(电子商务园)5005公司主营:西门子数控系统,V20变频器S7-200CN.S7-200smart.S7-300.S7-400.S7-1200.6ES5 ET200 人机界面,变频器,DP总线,MM变频器,6SE70交流工程调速变频器6RA70等系列产品。
产品简介
详细介绍
西门子精智面板6AV2124-6XJ00-0AX1定制
SIEMENS 数控 伺服
ASCII码转换指令
有效的ASCII码字符为十六进制的30到39和41到46。
在ASCII码和十六进制数之间相互转换
ASCII码转十六进制数指令(ATH)将一个长度为LEN从IN开始的
ASCII码字符串转换成从OUT开始的十六进制数。十六进制数转ASCII码指令(HTA)将从输入字节IN开始的十六进制数,转换 成从OUT开始的ASCII码字符串。被转换的十六进制数的位数由长度LEN给出。
可转换的ASCII字符或十六进制数字的数目是255。有效
ASCII输入
有效的ASCII码输入字符是0到9的十六进制数代码值30到39, 和大写字符A到F的十六进制数代码值41到46这些字母数字
字符。
使ENO=0的错误条件:
■ SM1.7 (非法的ASCII码)只对ATH有效
■ 0006 (间接寻址)
■ 0091 (操作数超出范围)
受影响的SM标志位:
■ SM1.7 (非法的ASCII码)
将数值转为ASCII码
整数转ASCII码(ITA)、双整数转ASCII码(DTA)和实数转ASCII 码(RTA)指令,分别将整数、双整数或实数值转换成ASCII码字符。
表6- 18 ASCII码转换指令的有效操作数
输入/输出 | 数据类型 | 操作数 |
IN | BYTE | IB、QB、VB、MB、SMB、SB、LB、*VD、*LD、*AC |
INT | IW、QW、VW、MW、SMW、SW、LW、T、C、AC、AIW、*VD、 *LD、*AC、常数 | |
DINT | ID、QD、VD、MD、SMD、SD、LD、AC、HC、*VD、*LD、*AC、 常数 | |
实型 | ID、QD、VD、MD、SMD、SD、LD、AC、*VD、*LD、*AC、常数 | |
LEN、FMT | BYTE | IB、QB、VB、MB、SMB、SB、LB、AC、*VD、*LD、*AC、常数 |
OUT | BYTE | IB、QB、VB、MB、SMB、SB、LB、*VD、*LD、*AC |
整数转ASCII码指令的操作数
整数转ASCII码(ITA)指令将一个整数字IN转换成一个ASCII码字 符串。格式FMT小数点右侧的转换精度和小数点是使用逗 号还是点号。转换结果OUT的连续8个字节中。
ASCII码字符串始终是8个字节。
使ENO=0的错误条件:
■ 0006 (间接寻址)
■ 非法的格式
■ nnn>5
整数转ASCII码指令的格式操作数如图6--15所示。输出缓冲区的大小始终是8个字节。nnn表示输出缓 冲区中小数点右侧的数字位数。nnn域的有效范围是0--5。十进制小数点右面的数字为0使数值显 示为一个没有小数点的数值。对于nnn大于5的情况,输出缓冲区会被空格键的ASCII码填冲。c是用逗号(c=1)或者点号(c=0)作为整数和小数的分隔符。高4位必须为0。
图6--15中给出了一个数值的例子,其格式为使用点号(c=0),小数点右侧有三位小数(nnn=011)。输出
缓冲区的格式符合以下规则:
q 正数值写入输出缓冲区时没有符号位。
q 负数值写入输出缓冲区时以负号(--)开头。
q 小数点左侧的开头的0(除去靠近小数点的那个之外)被隐藏。
q 数值在输出缓冲区中是右对齐的。
FMT
MSB LSB
7 6 5 4 3
2 1 0
输入=12 输入=- 123
c=逗号(1)或者点号(0)
nnn=小数点右侧的位数
输入=1234 输入=- 12345
图6--15 整数转ASCII码(ITA)指令的FMT操作数
双整数转ASCII码指令操作
双整数转ASCII码(DTA)指令将一个双字IN转换成一个ASCII码字符串。格式操作数FMT小数点右侧的转换精度。转换结 果存储在从OUT开始的连续12个字节中。
输出缓冲区的大小总是12个字节。
使ENO=0的错误条件:
■ 0006(间接寻址)
■ 非法的格式
■ nnn>5
图6--16描述了双整数转ASCII码指令的格式操作数。nnn表示输出缓冲区中小数点右侧的数字位数。
nnn域的有效范围是0--5。十进制小数点右面的数字为0使数值显示为一个没有小数点的数值。对 于nnn大于5的情况,输出缓冲区会被空格键的ASCII码填冲。c是用逗号(c=1)或者点号(c=0)作为 整数和小数的分隔符。高4位必须为0。
图6--16中给出了一个数值的例子,其格式为使用点号(c=0),小数点右侧有四位小数(nnn=100)。输出
缓冲区的格式符合以下规则:
q 正数值写入输出缓冲区时没有符号位。
q 负数值写入输出缓冲区时以负号(--)开头。
q 小数点左侧的开头的0 (除去靠近小数点的那个之外)被隐藏。
q 数值在输出缓冲区中是右对齐的。
7 6 5 4 3
2 1 0
输入=--12 输入=1234567
c=逗号(1)或者点号(0)
nnn=小数点右侧的位数
图6--16 双整数转ASCII码(DTA)指令的FMT操作数
实数转ASCII码指令操作
实数转ASCII码指令(RTA)将一个实数值IN转为ASCII码字符 串。格式操作数FMT小数点右侧的转换精度,小数点是用 逗号还是用点号表示和输出缓冲区的大小。
转换结果存储在从OUT开始的输出缓冲区中。
使ENO=0的错误条件:
■ 0006 (间接寻址)
■ nnn>5
■ ssss<3
■ ssss<OUT中的字符个数
结果ASCII码字符的位数(或长度)就是输出缓冲区的大小,它的值可以在3到15字节或字符之间。
S7- 200的实数格式支持多7位小数。试图显示7位以上的小数会产生一个四舍五入错误。
图6--17是对RTA指令中格式操作数FMT的描述。ssss表示输出缓冲区的大小。0、1或者2个字节的大 小是无效的。nnn表示输出缓冲区中小数点右侧的数字位数。nnn域的有效范围是0--5。十进制小 数点右面的数字为0使数值显示为一个没有小数点的数值。对于nnn大于5或者的输出缓冲区太小 以致于无法存储转换值的情况,输出缓冲区会被空格键的ASCII码填冲。c是用逗号(c=1)或者点号(c=0)作为整数和小数的分隔符。
图6--17中给出了一个数值的例子,其格式为:使用点号(c=0)、小数点右侧有1位小数(nnn=001)和6
个字节的缓冲区大小(ssss=0110)。输出缓冲区的格式符合以下规则:
q 正数值写入输出缓冲区时没有符号位。
q 负数值写入输出缓冲区时以负号(--)开头。
q 小数点左侧的开头的0 (除去靠近小数点的那个之外)被隐藏。
q 小数点右侧的数值按照的小数点右侧的数字位数被四舍五入。
q 输出缓冲区的大小应至少比小数点右侧的数字位数多三个字节。
q 数值在输出缓冲区中是右对齐的。
FMT
MSB
LSB
7 6 5 4 3 2 1 0
ssss=输出缓冲区的大小
c=逗号(1)或者点号(0)
nnn=小数点右侧的位数
输入=1234.5 输入=- 0.0004 输入=- 3.67526
输入=1.95
图6--17 实数转ASCII码(RTA)指令的FMT操作数
Network 1 LD I3.2 ATH VB30,VB40,3 | |||||||
‘3’ | ‘E’ | ‘A’ | |||||
33 | 45 | 41 | ATH | 3E | Ax | 注意:X指示“半字节"(字节的一半)保持不变。 | |
VB30 | VB40 |
实例:整数转ASCII指令 | |||||||||
Network 1 //将VW2中的整数值转换为从VB10 //开始的8个ASCII码字符, //使用16#0B的格式 //(逗号作小数点,保留3位小数) LD I2.3 ITA VW2,VB10,16#0B | |||||||||
‘ ’ | ‘ ’ | ‘1’ | ‘2’ | ‘,’ | ‘3’ | ‘4’ | ‘5’ | ||
12345 | ITA | 20 | 20 | 31 | 32 | 2C | 33 | 34 | 35 |
VW2 | VB10 | VB11 | ... |
实例:实数转ASCII指令 | ||||||||||||
Network 1 //将VD2中的实数值转换成 //从VB10开始的10个ASCII码字符, //使用16#A3的格式 //(用点号作小数点, //后面跟3位小数)。 LD I2.3 ITA VW2,VB10,16#0B | ||||||||||||
‘ ’ | ‘ ’ | ‘ ’ | ‘1’ | ‘2’ | ‘3’ | ‘.’ | ‘4’ | ‘5’ | ‘0’ | |||
123.45 | RTA | 20 | 20 | 20 | 31 | 32 | 33 | 2E | 34 | 35 | 30 | |
VD2 | VB10 | VB11 | ... |
下一篇:西门子触摸屏6AV2125-2JB23-0AX0现场调试