首页 理论教育 浮点数、时钟和外设指令运算

浮点数、时钟和外设指令运算

时间:2023-07-02 理论教育 版权反馈
【摘要】:该指令为32位运算指令,占17个程序步。当除数为0图4-65 二进制浮点数四则运算指令的使用时出现运算错误,不执行指令。二进制的浮点运算还有开平方、三角函数运算等指令,在此不再说明。

浮点数、时钟和外设指令运算

1.浮点数运算指令

浮点数运算指令包括浮点数的比较、四则运算、开方运算和三角函数等功能,它们分布在指令编号为FNC110~FNC119、FNC120~FNC129、FNC130~FNC139等指令之中。

(1)浮点数比较指令

浮点数比较指令如表4-14所示。

表4-14 浮点数比较指令

978-7-111-38047-4-Chapter04-76.jpg

1)进制浮点数比较指令ECMP(FNC110)。二进制浮点数比较指令ECMP用于比较两个二进制的浮点数。该指令源操作数可取K、H和D,目标操作数可用Y、M和S。为32位运算指令,占13个程序步。

示例及使用:如图4-63所示,将两源操作数进行比较,比较结果反映在目标操作数中,如果操作数为常数,则自动转换成二进制浮点数值处理。

2)二进制浮点数区间比较指令EZCP(FNC111)。EZCP(P)指令的功能是将源操作数的内容与用二进制浮点数值指定的上下两点的范围比较,对应的结果用ON/OFF反映在目标操作数上。

示例及使用:如图4-64所示。该指令为32位运算指令,占17个程序步。源操作数可以是K、H和D;目标操作数为Y、M和S。[S1.]应小于[S2.],操作数为常数时将被自动转换成二进制浮点数值处理。

978-7-111-38047-4-Chapter04-77.jpg

图4-63 二进制浮点数比较指令的使用

978-7-111-38047-4-Chapter04-78.jpg

图4-64 二进制浮点数区间比较指令的使用

(2)二进制浮点数的四则运算指令

二进制浮点数的四则运算指令如表4-15所示。

表4-15 二进制浮点数的四则运算指令

978-7-111-38047-4-Chapter04-79.jpg

浮点数的四则运算指令有加法指令EADD(FNC120)、减法指令ESUB(FNC121)、乘法指令EMUL(FNC122)和除法指令EDIV(FNC123)四条指令。四则运算指令的使用如图4-65所示,它们都是将两源操作数中的浮点数进行运算后送入目标操作数。当除数为0

978-7-111-38047-4-Chapter04-80.jpg

图4-65 二进制浮点数四则运算指令的使用

时出现运算错误,不执行指令。此类指令只有32位运算,占13个程序步。运算结果影响标志位M8020(零标志)、M8021(借位标志)、M8022(进位标志)。源操作数可取K、H和D,目标操作数为D。如有常数参与运算,则自动转化为浮点数。

二进制的浮点运算还有开平方、三角函数运算等指令,在此不再说明。

2.时钟运算指令

共有7条时钟运算类指令,指令的编号分布在FNC160~FNC169之间。时钟运算指令是对时钟数据进行运算和比较,对PLC内置实时时钟进行时间校准和时钟数据格式化操作。时钟运算指令如表4-16所示。

表4-16 时钟运算指令

978-7-111-38047-4-Chapter04-81.jpg

(1)时钟数据比较指令TCMP(FNC160)

TCMP(P)的功能是比较指定时刻与时钟数据的大小。

示例及使用:如图4-66所示,将源操作数[S1.]、[S2.]、[S3.]中的时间与[S.]起始的3点时间数据比较,根据它们的比较结果决定目标操作数[D.]中起始的3点单元中取ON或OFF的状态。该指令只有16位运算,占11个程序步。它的源操作数可取T、C和D,目标操作数可以是Y、M和S。

(2)时钟数据加法运算指令TADD(FNC162)

TADD(P)指令的功能是将两源操作数的内容相加结果送入目标操作数。源操作数和目标操作数均可取T、C和D。TADD为16位运算,占7个程序步。

示例及使用:如图4-67所示,将[S1.]指定的D10~D12和D20~D22中所放的时、分、秒相加,把结果送入[D.]指定的D30~D32中。当运算结果超过24h时,进位标志位变为ON,将进行加法运算的结果减去24小时后作为结果进行保存。

978-7-111-38047-4-Chapter04-82.jpg

图4-66 时钟数据比较指令的使用

978-7-111-38047-4-Chapter04-83.jpg

图4-67 时钟数据加法运算指令的使用

(3)时钟数据读取指令TRD(FNC166)(www.xing528.com)

TRD(P)指令为16位运算,占7个程序步。[D.]可取T、C和D。它的功能是读出内置的实时时钟的数据放入由[D.]开始的7个字内。

示例及使用:如图4-68所示,当X1为ON时,将实时时钟(它们以年、月、日、时、分、秒、星期的顺序存放在特殊辅助寄存器D8013~8019中)传送到D10~D16中。

3.外部设备(SER)指令

外部设备(SER)有8条指令(FNC80~FNC89),外部设备指令如表4-17所示。

978-7-111-38047-4-Chapter04-84.jpg

图4-68 时钟数据读取指令的使用

表4-17 外部设备指令

978-7-111-38047-4-Chapter04-85.jpg

(1)八进制数据传送指令

八进制数据传送指令(D)PRUN(P)(FNC81)是用于八进制数的传送。

示例及使用:如图4-69所示,当X10为ON时,将X0~X17内容送至M0~M7和M10~M17(因为X为八进制,故M9和M8的内容不变)。当X11为ON时,则将M0~M7送Y0~Y7,M10~M17送Y10~Y17。源操作数可取Kn X、Kn M,目标操作数取Kn Y、Kn M,n=1~8,16位和32位运算分别占5个和9个程序步。

(2)十六进制数与ASCII转换指令

有HEX→ASCII转换指令ASCI(FNC82)、ASCII→HEX转换指令HEX(FNC83)两条指令。

HEX→ASCII转换指令ASCI(P)的功能是将源操作数[S.]中的内容(十六进制数)转换成ASCII码,放入目标操作数[D.]中。

示例及使用:如图4-70所示,n表示要转换的字符数(n=1~256)。M8161控制采用16位模式还是8位模式。16位模式时每4个HEX占用1个数据寄存器,转换后每两个ASCII码占用一个数据寄存器;8位模式时,转换结果传送到[D.]低8位,其高8位为0。PLC运行时M8000为ON,M8161为OFF,此时为16位模式。当X0为ON时,则执行ASCII。如果放在D100中的4个字符为OABCH,则执行后将其转换为ASCII码送入D200和D201中,D200高位放A的ASCII码41H,低位放0的ASCII码30H,D201则放BC的ASCII码,C放在高位。该指令的源操作数可取所有数据类型,目标操作数可取Kn Y、Kn M、Kn S、T、C和D。只有16位运算,占用7个程序步。

978-7-111-38047-4-Chapter04-86.jpg

图4-69 八进制数据传送指令的使用

978-7-111-38047-4-Chapter04-87.jpg

图4-70 HEX→ASCII转换指令的使用

ASCII→HEX指令HEX(P)的功能与ASCII指令相反,是将ASCII表示的信息转换成十六进制的信息。

示例及使用:如图4-71所示,将源操作数D200~D203中放的ASCII转换成十六进制放入目标操作数D100和D101中。只有16位运算,占7个程序步。源操作数为K、H、Kn X、Kn Y、Kn M、Kn S、T、C和D,目标操作数为Kn Y、Kn M、Kn S、T、C、D、V和Z。

(3)校验码指令

校验码指令CCD(P)(FNC84)的功能是对一组数据寄存器中的十六进制数进行总校验和奇偶校验

示例及使用:如图4-72所示,是将源操作数[S.]指定的D100~D102共6个字节的8位二进制数求和并“异或”,结果分别放在目标操作数D0和D1中。通信过程中可将数据和、“异或”结果随同发送,对方接收到信息后,先将传送的数据求和并“异或”,再与收到的和及“异或”结果比较,以此判断传送信号的正确与否。源操作数可取Kn X、Kn Y、Kn M、Kn S、T、C和D,目标操作数可取Kn M、Kn S、T、C和D,n可用K、H或D,n=1~256。为16位运算指令,占7个程序步。

978-7-111-38047-4-Chapter04-88.jpg

图4-71 ASCII→HEX指令的使用

978-7-111-38047-4-Chapter04-89.jpg

图4-72 校验码指令的使用

以上PRUN、ASCII、HEX、CCD常应用于串行通信中,配合RS指令。

(4)模拟量输入指令

模拟量输入指令VRRD(P)(FNC85)是用来对FX2N-8AV-BD模拟量的功能扩展板中的电位器数值进行读操作。

示例及使用:如图4-73所示,当X0为ON时,读出FX2N-8AV-BD中0号模拟量的值(由K0决定),将其送入D0作为T0的设定值。源操作数可取K、H,它用来指定模拟量口的编号,取值范围为0~7;目标操作数可取Kn Y、Kn M、Kn S、T、C、D、V和Z。该指令只有16位运算,占5个程序步。

978-7-111-38047-4-Chapter04-90.jpg

图4-73 模拟量输入指令的使用

(5)模拟量开关设定指令

模拟量开关设定指令VRSC(P)(FNC86)的作用是将FX-8AV中电位器读出的数四舍五入整量化后以0~10之间的整数值存放在目标操作数中。它的源操作数[S.]可取K和H,用来指定模拟量口的编号,取值范围为0~7;目标操作数[D.]的类型与VRRD指令相同。该指令为16位运算,占9个程序步。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈