您现在的位置是:首页 > PLC技术 > PLC技术

S7-200 PLC的ASCII码与十六进制数的互转

来源:艾特贸易2017-06-04

简介鉴于信息交换的重要性及为统一文字符号的编码标准,使不同厂家、不同机型的计算机皆能使用同一套标准化的信息交换码,美国标准局制定了 ASCII 码 (America Standard Code forInformation In

    鉴于信息交换的重要性及为统一文字符号的编码标准,使不同厂家、不同机型的计算机皆能使用同一套标准化的信息交换码,美国标准局制定了ASCII(America Standard Code forInformation Interchange,美国信息交换标准码)作为数据传输的标准码。早期使用7个位来表示英文字母、数字09及其他符号,现在则使用8个位,共可表示256个不同的文字与符号,是目前各计算机系统中使用最普遍也最广泛的英文标准码。相对于ASCII码,中文系统中使用最广泛的内码则为Big-5码。ASCII码与十六进制数的互转指令如图3-87所示。
ASCII码与十六进制数的互转指令
    3-87    ASCII码与十六进制数的互转指令    (a) ASCII码转换为十六进制数指令;(b)十六进制数转换为ASCII码指令    (1) ASCII码转换为十六进制数。ASCII码转换为十六进制(Hex)数指令的梯形图由助记符( ATH)、使能输入端(EN)ASCII码起始字节(IN)、字符长度(LengthLEN)和十六进制数的输出端( OUT)构成;其语句表由操作符(ATH)ASCII码起始字节地址(IN)16进制数输出地址(OUT)和字符长度(LEN)构成,如图3-87 (a)所示。    ASCII码转换为十六进制数指令可将ASCII码转换为十六进制数。当EN=1时,把从IN开始、以LEN为长度的ASCII码转换成十六进制数,结果存放于以OUT为开始地址的单元中。    数据范围:    1) ASCII起始字节地址INVBIBQBMBSMBSBLB*VD*AC*LD    2)十六进制数OUTVBIBQBMBSMBSBLB*VD*AC*LD    3)字符长度LENVBIBQBMBSMBSBAC、常数、LB*VD*AC*LD    【例3-31】图3-88是一个ASCII码转换为十六进制数指令编程的例子,当I1.2 =1时,以VB12为开始地址的连续3(LEN -3)个单元VB12VB13VB14中的ASCII码字符串334541被转换成十六进制数(3EAx),其中x表示VB25的“半字节”,即低四位的值未改变,结果存入以VB24为开始地址的连续单元中。把ASCII码转换成十六进制数时,是从高位到低位依次存到单元中的。
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的取值范围为0255;十六进制数(0F)对应的合法的ASCII码字符为:30394146。指令影响的特殊存储器标志位:SMl.7(非法ASCII码)。    数据范围:    1)十六进制数INVBIBQBMBSMBLB*VD*AC*LD    2) ASCIIOUT: VBIBQBMBSMBLB*VD*AC*LD    3)字符长度LENVBIBQBMBSMBLBAC、常数、*VD*AC*LD    【例3-32 3-89给出了一个十六进制转换为ASCII指令编裎的例子,当I1.2 =1时,以VB12为开始地址的连续2(LEN =2)个单元VB12VB13字节中的十六进制数(4365)被转换成ASCII(34333635),结果存入以VB24为开始地址的连续单元VB24VB25VB26VB27中。
十六进制转换为ASCII码指令的工作原理
    3-89    十六进制转换为ASCII码指令的工作原理