三菱FX5U PLC的FUN通用函数介绍(上)
之前的文章中我们介绍过FB块的新建和使用,还介绍了FB块指令像双稳态功能块、定时器功能块和计数器功能块等,除此之外,还有FUN函数块,那么这一篇文章就给大家介绍一下我们三菱FX5U PLC都有哪些FUN函数吧。
其实主要分为几个类,包括位布尔功能、类型转化、算术运算、比较、时间数据类型、位移位等,还有其他通用函数也可以看下手册说明哦,这些FUN函数其实大部分都有对应的一些梯形图指令,大家可以对比着来学习哦。下面我们就按各个分类来介绍一下吧。
一、位布尔功能函数
位类型布尔类的函数包括:逻辑与、逻辑或、逻辑异或和逻辑非。
逻辑与函数块是对两个输入数值的对应位执行“与”运算操作。运算方法:两个位同为1是结果为1,其余为0。逻辑或函数块是对两个输入数值的对应位执行“或”运算操作。
运算方法:两个位中只要有一个位为1,其结果就为1。
逻辑异或:指令对两个输入数值的对应位执行“异或”运算操作。
运算方法:同为0,异为1。逻辑非:对输入的操作数的位进行取反操作。
运算方法:0变为1,1变为0。下图以逻辑与函数块为例,看一下程序和其数据的位处理情况。
对于逻辑与,利用其有0出0的功能可以进行复位操作;对于逻辑或,利用其有1出1的功能可以进行置位操作。我们以一个简单的例子来看一下位类型布尔功能函数的功能。
【案例】求任意两数相减所得的绝对值。
二、类型转换功能函数
类型转换功能是对数据类型进行转换,我们常见的数据类型包括BOOL型、WORD型、DWORD型、INT型、DINT型、TIME型、STRING型、BCD型、REAL型等。所以说类型转换功能是指这些数据类型之间的转换的FUN函数。跟西门子中的转换指令是类似的。
比如说我们要进行浮点数运算,而输入进来的数据D0是整数类型的,那么我们就要把整数转换成双整数,然后再转换成浮点数,这时我们就可以用上INT_TO_DINT和DINT_TO_REAL的FUN函数进行转换,转换之后存储到D4中,那么D4就可以进行浮点数运算。
此外,在类型转换功能中还有几个FUN函数,叫做字标签的指定位读取/写入/复制,我们以下图的程序直接讲解,GET_BIT_OF_INT用于读取字标签的指定位,输出(s)的第(n)位,也就是X0接通时,将1写到D0的bit5位。
SET_BIT_OF_INT用于对字标签的指定位进行写入,将(s)中指定的BOOL值写入到(d)的第(n)位中,也就是将D0中的bit5位的值1写入到输出M0中,所以M0输出为ON。CPY_BIT_OF_INT用于将字标签的指定位复制到其它字标签的指定位,将(s)中指定的字第(n1)位的值复制到(d)的第(n2)位中,也就是将D2中指定的bit5位的值复制到D4的bit10位中。
三、算术运算函数
算术运算功能函数包括加ADD、减SUB、乘MUL、除DIV运算,还有求余数MOD、求幂EXPT、代入MOVE等功能。
加法运算ADD:输出(s1)+(s2)+…+(s28)值之和。
乘法运算MUL:输出(s1)×(s2)×…×(s28)值之乘积。
减法运算SUB:输出(s1)-(s2)值之差。
除法运算DIV:输出(s1)÷(s2)值之商,余数不输出。
求余数MOD:输出(s1)÷(s2)值之余数,商不输出。
求幂EXPT:将(s1)中输入的REAL型数据以(s2)中指定的INT型/DINT型/REAL型进行幂运算,从(d)输出运算结果。比如说把IN1输入定义一个基数的标签名,IN2输入定义一个指数的标签名,基数是单精度实数类型的,指数设置成字类型的,输出的就是进行幂运算的结果,也是单精度实数的。
代入MOVE:相当于梯形图指令中的MOV指令,区别在于它是通过指令MOV/DMOV/DEMOV决定数据类型的,而MOVE可以指定BOOL/INT/DINT/WORD/DWORD/REAL/STRING/TIME/结构体等类型,注意MOVE只可以指定相同的数据类型哦。
下面我们就以一个运算的案例讲解下算术运算函数的使用。
【案例】根据如下算法:y=[(a+b)×(a+b)]÷(a×b),编写其运算程序。
这篇文章就先介绍位布尔功能、类型转换、算术运算函数,还有比较、时间数据类型、位移位等其他通用函数就在下一篇文章继续介绍吧,大家继续关注我们哦~
技成培训网原创,作者:蔡慧荥,未经授权不得转载,违者必究~
西门子S7-200 SMART整数运算指令应用举例
上篇文章为大家简要介绍了西门子S7-200 SMART的整数运算指令,本篇我们举例来说明整数运算指令在程序中的应用。在实际应用中,经常需要将现场采集的模拟量信号数据值进行转换,得到对应的工程量数值,假设得到的转换公式如下图所示,为了便于演示,将AIW0的地址更改为VW0,需要注意,为了保证精度,运算时应该先进行乘法运算再进行除法运算。
整数运算指令应用举例
我们来编写程序。双击电脑桌面上的STEP7-Micro/WIN SMART图标,打开编程软件,首先从指令树的位逻辑中选择一个常开触点,拖放到程序编辑器的程序段1中,输入地址SM0.0,在指令树整数计算选项中拖动整数相减指令到刚刚添加的常开触点后面,在IN1处输入地址VW0,在IN2处输入数值6400,在OUT处输入地址VW2。
添加整数相减指令
单击工具栏插入向下垂直线按钮,产生一个程序分支。因为乘法运算的结果可能超出十六位整数的范围,所以需要使用整数相乘得到双整数指令,插入该指令,在IN1处输入地址VW2,在IN2处输入数值100,在OUT处输入地址VD4。
添加整数相乘得到双整数指令
再次单击工具栏插入向下垂直线按钮,继续产生程序分支。因为VD4是双整数,所以需要双整数相除指令,插入该指令,在IN1处输入地址VD4,在IN2处输入数值25600,在OUT处输入地址VD8。这样,一个用整数运算指令编写的模拟量运算程序就编写完成了。
添加整数相除指令
编译并下载程序到S7-200 SMART PLC。单击菜单中的下载按钮,在打开的通信对话框中选择要访问的CPU并点击确定进行下载,下载完成后关闭对话框。在线查看程序运行情况。单击PLC菜单下的RUN按钮运行项目,单击调试菜单下的程序状态按钮在线观察程序的运行情况,在状态图表中输入地址VW0,格式为有符号整数,再输入VD8。单击状态图表的工具栏图表状态按钮,可以看到VW0和VD8的当前值。
在线查看程序运行情况
在VW0的新值列中输入20000,单击状态图表的工具栏写入按钮,则VW2变为相应的值,此时VD8自动计算为相应的数值。
自动计算相应的数值
本篇关于西门子S7-200 SMART整数运算指令的应用实例就讲解完了,下篇我会继续讲解S7-200 SMART的有关内容,欢迎关注!另外,需要学习西门子S7-200的朋友们可以私信发送关键字“200”,您将会收到一套西门子S7-200的视频教程。
相关问答
二进制中两个数相减应该怎么做?
从低位减起一直到高位。1-0=11-1=00-0=00-1=1(向高位借一位)说白了就是十进制的减法简约版从低位减起一直到高位。1-0=11-1=00-0=00-1=1(向高位...
整数加减法的法则是什么?_作业帮
[最佳回答]加减法的法则:同单位相加减,单位不变,单位的个数相加减整数1.相同数位对齐;2.从低位算起;3.加法中满几十就向前一位进几;减法中不够减时,就从...
二进制数相减的原则?
3.适合逻辑运算:逻辑代数是逻辑运算的理论依据,二进制只有两个数码,正好与逻辑代数中的“真”和“假”相吻合。4.易于进行转换,二进制与十进制数易于互相...
(3)重载“-”运算符,实现两个大整数的相减运算;_作业帮
[最佳回答]这些是计算器其中的一些功能吧,我以前做过,但没做完,我可以告诉你一些基本思路所有数字字符都用字符串来存储(MFC里用CString很方便,C++用char*实...
表格两数相减的公式?
操作步骤如下:1、首先打开excel表格,在表格中的单元格内输入需要进行相减操作的数据,需要计算A列减去B列。2、然后在C1单元格内输入减法计算公式:=A1-B1。...
如何让excel两列16进制数相减?
=DEC2HEX(HEX2DEC(A1)-HEX2DEC(B1))这个公式是把A1B1中的16进制的数先分别转换成十进制,得出的结果再转换成16进制的。如果得出的结果是10进制的,公式如下=HE.....
excel中如何让两列数相减?
在excel中,让两列数相减,比如A-B列数据,我们可以在展示结果的C1单元格输入=A1-B1.出来结果后,在C1单元格右下角的填充柄往下拖动就都出来结果了在excel中,让...
两个矢量相减的几何方法?
16.读游标卡尺和螺旋测微器的要诀:(1)游标卡尺:一精度、二格数、三整数。(2)螺旋测微器:一固定、二半露、三可动。注意:①精度:0.1、0.05、0.02、0.01...考...
差的所有读音和每个读音的详细解释和组词-懂得
差chā(1)(形)不相同:~错|~别|~池。(2)(名)两数相减所剩余的数也作差数。差chà(1)(形)不相同;不相合:~得远。(2)(名)错误:说~了。(3)(名)缺欠:~点...
【怎样进行整数、小数、分数加减运算?它们的计算方法有什么...
[回答]整数、小数和分数加减法的相同点,就是把相同的计数单位的数相加或相减.整数加、减计算法则:1)要把相同数位对齐,再把相同计数单位上的数相加或相减...