陕西西门子S7-1200PLC代理经销优势价格
西门子S7-200 PLC的ASCII码与十六进制数的互转
鉴于信息交换的重要性及为统一文字符号的编码标准,使不同厂家、不同机型的计算机皆能使用同一套标准化的信息交换码,美国标准局制定了ASCII码(America Standard Code forInformation Interchange,美国信息交换标准码)作为数据传输的标准码。早期使用7个位来表示英文字母、数字0~9及其他符号,现在则使用8个位,共可表示256个不同的文字与符号,是目前各计算机系统中使用Z普遍也Z广泛的英文标准码。相对于ASCII码,中文系统中使用Z广泛的内码则为Big-5码。ASCII码与十六进制数的互转指令如图3-87所示。
图3-87 ASCII码与十六进制数的互转指令
(a) ASCII码转换为十六进制数指令;(b)十六进制数转换为ASCII码指令
(1) ASCII码转换为十六进制数。ASCII码转换为十六进制(Hex)数指令的梯形图由助记符( ATH)、使能输入端(EN)、ASCII码起始字节(IN)、字符长度(Length,LEN)和十六进制数的输出端( OUT)构成;其语句表由操作符(ATH)、ASCII码起始字节地址(IN)、16进制数输出地址(OUT)和字符长度(LEN)构成,如图3-87 (a)所示。
ASCII码转换为十六进制数指令可将ASCII码转换为十六进制数。当EN=1时,把从IN开始、以LEN为长度的ASCII码转换成十六进制数,结果存放于以OUT为开始地址的单元中。
数据范围:
1) ASCII起始字节地址IN:VB、IB、QB、MB、SMB、SB、LB、*VD、*AC、*LD。
2)十六进制数OUT:VB、IB、QB、MB、SMB、SB、LB、*VD、*AC、*LD。
3)字符长度LEN:VB、IB、QB、MB、SMB、SB、AC、常数、LB、*VD、*AC、*LD。
【例3-31】图3-88是一个ASCII码转换为十六进制数指令编程的例子,当I1.2 =1时,以VB12为开始地址的连续3(LEN -3)个单元VB12、VB13、VB14中的ASCII码字符串33、45、41被转换成十六进制数(3EAx),其中x表示VB25的“半字节”,即低四位的值未改变,结果存入以VB24为开始地址的连续单元中。把ASCII码转换成十六进制数时,是从高位到低位依次存到单元中的。
图3-88 ASCII码转换为十六进制数指令的工作原理
(2)十六进制数转换为ASCH码。十六进制数转换为ASCII指令的梯形图由助记符( HTA)、使能输入端(EN)、十六进制数输入端(IN)、数据长度(LEN)和ASCII输出端( OUT)构成;其语句表由操作码(HTA)、十六进制数输入(IN)、ASCII码输出(OUT)和数据长度( LEN)构成,如图3-87 (b)所示。
十六进制数转换为ASCII码指令可将十六进制数转换为ASCII码。当EN=1时,把从IN开始、以LEN为长度的十六进制数转换成ASCII码,存于以OUT为起始地址的连续单元中。LEN的取值范围为0~255;十六进制数(0~F)对应的合法的ASCII码字符为:30~39和41~46。指令影响的特殊存储器标志位:SMl.7(非法ASCII码)。
数据范围:
1)十六进制数IN:VB、IB、QB、MB、SMB、LB、*VD、*AC、*LD。
2) ASCII码OUT: VB、IB、QB、MB、SMB、LB、*VD、*AC、*LD。
3)字符长度LEN:VB、IB、QB、MB、SMB、LB、AC、常数、*VD、*AC、*LD。
【例3-32】 图3-89给出了一个十六进制转换为ASCII指令编裎的例子,当I1.2 =1时,以VB12为开始地址的连续2(LEN =2)个单元VB12、VB13字节中的十六进制数(43、65)被转换成ASCII码(34、33、36、35),结果存入以VB24为开始地址的连续单元VB24、VB25、VB26、VB27中。
图3-89 十六进制转换为ASCII码指令的工作原理
段码指令的梯形图由助记符( Segment,SEG)、使能输入端(EN)、字节数据输入端(IN)和段码输出端(OUT)构成;其语句表由操作码( SEG)、字节数据输入(IN)和段码输出(OUT)构成,如图3-85 (a)所示。
图3-85 段码指令与LED数码显示器
(a)段码指令;(b) LED数码显示器
段码指令可以将字节数据转换成七段段码输出,当转换允许时,把输入字节数据IN低四位的有效值转换成七段显示码,结果传送到OUT中。
数据范围:
1)字节数据IN:VB、IB、QB、MB、SMB、SB、AC、LB、常数、*VD、*AC、*LD。
2)段码数据OUT: VB、IB、QB、MB、SMB、SB、AC、LB、*VD、*AC、*LD。
通常使用的LED是由7个发光二极管排列成的,七段LED的阳极连在一起称为共阳极接法,而阴极接在一起的称为共阴极接法。每段LED的笔画分别称为a、b、c、d、e、f、g,另外有一段构成小数点,如图3-85 (b)所示。每个七段显示码占用一个字节,用它显示一个字符,如74LS48或CD4511可以把8421编码的十进制译成七段a、b、c、d、e、f、g输出,用以驱动共阴极LED。LED数码显示器共阴极和共阳极段码见表3-15。
表3-15 LED数码显示器共阴极和共阳极段码
【例3-30】 图3-86是一个段码指令编程的例子,当I1.2 =1时启动段码指令,VB12中的数值(0~15)被译成点亮七段显示器的数据,利用这个数据可以驱动七段显示器。如图中原VB12中的内容为05,执行段码指令以后,在OUT单元(AC3)中被译成0110 1101 (6D),该信号可以使七段显示器点亮“5”。
图3-86 段码指令的工作原理
陕西西门子S7-1200PLC代理经销优势价格