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

S7-300/400 PLC的基本数据类型转换指令

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

简介(1) BCD 码与整型数的转换指令 BCD 码到整型数的转换指令如图 4-31 所示。 该指令有一个标题,即 BCD_I ,用于指明这个指令实现哪两种数据类型的转换。实现不同数据类型之间转换的指令

    (1) BCD码与整型数的转换指令    BCD码到整型数的转换指令如图4-31所示。    该指令有一个标题,即BCD_I,用于指明这个指令实现哪两种数据类型的转换。实现不同数据类型之间转换的指令其标题不同。    该指令还有一个使能输入端(EN)和使能输出端(ENO),使能输入端为高电位“1”时,该指令工作;相反,如果为低电位“0”,则此时该指令不能工作。在指令正常工作时使能输出端为高电位,这样ENENO端的电位状态始终一致。ENENO端的数据都是BOOL类型的数据,可以是IQMLD存储区的数据。    IN端用于读入数据,可以是直接的BCD码数据,也可以是数据存储的地址;OUT端用于输出转换后的数据,并且将数据存储在OUT指定的存储位置中。    对于BCD_I的转换指令,IN端输入的必须为WORD类型的BCD码数据,OUT端为INT类型的数据,两者的数据均可以来自IQMLD存储区。    BCD_I指令将IN端的数据以3BCD码数字(+/-999)读取,并将其转换为整型值(16位)。整型值的结果通过OUT端输出。    BCD_I指令在程序中的具体应用如图4-32所示。EN端可以通过一些位状态进行控制,其ENO端也可以输出信号控制其他的指令。在IN端和OUT端给出的数据存储地址,必须以WORD类型的数据形式进行操作。
BCD码到整型数转换的BCD_I指令结构
    4-31    BCD码到整型数转换的BCD_I指令结构
BCD_I指令具体的编程
    4-32    BCD_I指令具体的编程    I0.1为高电位“1”时,BCD_I指令读入IW2区域内的数据,并将其转换成OUT形式的16位数据输出到MW4中;与此同时,ENO端输出高电位“1”,在M2.0为低电位“0”时,将置位Q2.5    如图4-33所示为整型数到BCD码转换的指令结构。
整型数到BCD码转换的I_BCD指令结构
    4-33    整型数到BCD码转换的I_BCD指令结构    I_BCD指令的结构与BCD_I指令类似,在IN端和OUT端同样只能是WORD类型的数据。    I_BCD指令工作时,IN端的数据以整型值(16位)读取,并将其转换为3BCD码数字(+/-999)。结果由OUT端输出。如果在转换的过程中产生溢出,ENO端输出低电位“0”。    (2) BCD码与长整型数据的转换指令    BCD码转换为长整型数据或长整型数据转换为BCD码的指令结构分别如图4-34 (a)、图4-34 (b)所示。
BCD码与长整型数据之间的转换指令
    4-34    BCD码与长整型数据之间的转换指令    BCD_DI指令的IN端必须为DWORD类型的BCD数据,OUT端为DINT类型的数据。两者的数据均可以来自IQMLD存储区。BCD_DI指令将IN端的数据以7BCD码(+/-9999999)数字读取,并将其转换为长整型值(32位)。长整型值的结果通过OUT端输出。整个指令执行过程ENO始终与EN的信号状态相同。    DI_BCD指令的IN端必须为DINT类型的数据,OUT端为DWORD类型的BCD数据。    DI_BCD指令将IN端的数据以长整型值(32位)读取,并将其转换为7BCD码数字(+/-9999999)。结果由OUT端输出。如果产生溢出,ENO的状态为“0”。    BCD_DI指令在程序中的具体应用如图4-35所示。
BCD_DI指令具体的编程
    4-35    BCD_DI指令具体的编程    在图4-35中,当I0.1为高电位“1”时,BCD_DI指令将ID4的内容以7BCD码数字读取,并将其转换为长整型值。结果存储在MD8中。    (3)整型数据转换为长整型数据的指令    整型数据转换成长整型数据的指令结构如图4-36所示。该指令同样有ENENO端口,数据输入端和输出端与前面介绍的指令类似。    IN端输入的数据必须为INT类型的数据,OUT端输出的数据为DINT类型,两者的数据均可以来自IQMLD存储区。I_DI指令将输入端IN的数据以整型(16位)读取,并将其转换为长整型(32位)。结果由输出端OUT输出。ENO始终与EN的信号状态相同。    (4)长整型数据转换为浮点型数据的指令    长整型数据转换为浮点型数据的指令结构如图4-37所示,具体指令的结构与前面介绍的指令完全一样。    IN端输入的数据必须为DINT类型的数据,OUT端输出的数据为REAL类型,两者的数据均可以来自IQMLD存储区。DI_R指令将输入端IN的数据以长整型读取,并将其转换为浮点型。结果由输出端OUT输出。ENO始终与EN的信号状态相同。
I_DI指令结构
    4-36    I_DI指令结构
DI_R指令结构
    4-37    DI_R指令结构