PLC怎样计算幂、指数、根、多项式、对数和线型值?
说明:
下面为下列计算功能提供一些示例程序:
计算幂、指数、平方根、多项式、对数函数计算三角函数转换为度计算线性值映射不同的数学函数功能块到控制器1、幂、指数、根、多项式、对数的计算功能
在STEP7中只能使用以 e (e = 2.7182818 ...) 为底的幂(EXP指令),也可以使用自然指数结合自然对数(LN指令)求任意数的幂(例如10的X次幂或2的X次幂),唯一的限制是底数不能为0。指令LN中输入0没有定义,使用0为底数将导致不正确的运算结果。使用EXP和LN指令的数学公式定义如下:
图. 01
图. 01 为通用求幂的方程式,使用STEP 7编写的代码如下:
图. 02
注意:
幂的值和输入的值必须为32位浮点值并且符合"ANSI/IEEE Standard 754-1985, IEEE Standard for Binary Floating-Point Arithmetic"标准。
2三角函数转换到角度
在STEP7中使用三角函数sine、cosine 和 tangent 时必须以弧度(0 到 2p) 定义角度值,角度值必须为浮点值并存储于累加器1中,计算的结果再次存储于累加器1中。
角度值通常为度(0 到360 度),在STEP7中必须转换为弧度值,两者为比例关系,180度对应 p (3.141593... .)
弧度 = 角度 * p / 180角度 = 弧度 * p / 1801.FC1: 角度值从度数转换为弧度值。
输入参数:"度数" 数据类型为:REAL输出参数:"弧度值" 数据类型为:REAL2.FC2: 角度值从弧度值转换为度数。
输入参数:"弧度值" 数据类型为:REAL输出参数:"度数" 数据类型为:REAL函数FC1和FC2在OB1中调用,如果开始位I1.0出现上升沿FC1被调用,如果开始位I1.1出现上升沿FC2被调用。
3. 计算线性值
通过坐标的两个点(x0,y0) 和 (x1,y1)可以决定线性特征,在横坐标定义X参数的值,函数计算Y的坐标值。输出参数Y为整数类型,取值范围为-27648 to~+27648.
图. 03
P点坐标值通过下列公式计算:
y = ((y1-y0) / (x1-x0)) *(x-x0) +y0图. 04
PLC编程方法概述及线性化编程,再不学习就晚了
用户程序结构
线性程序(线性编程)
所谓线性程序结构,就是将整个用户程序连续放置在一个循环程序块(OB1)中块中的程序按顺序执行,CPU通过反复执行OB1来实现自动化控制任务。这种结构和PLC所代替的硬接线继电器控制类似,CPU逐条地处理指令。事实上所有的程序都可以用线性结构实现,不过,线性结构一般适用于相对简单的程序编写。
分部式程序(分部编程、分块编程)
所谓分部程序,就是将整个程序按任务分成若干个部分,并分别放置在不同的功能(FC)、功能块(FB)及组织块中,在一个块中可以进一步分解成段。在组织块OB1中包含按顺序调用其他块的指令,并控制程序执行。 在分部程序中,既无数据交换,也不存在重复利用的程序代码。功能(FC)和功能块(FB)不传递也不接收参数,分部程序结构的编程效率比线性程序有所提高,程序测试也较方便,对程序员的要求也不太高。对不太复杂的控制程序可考虑采用这种程序结构。
结构化程序(结构化编程或模块化编程 )
所谓结构化程序,就是处理复杂自动化控制任务的过程中,为了使任务更易于控制,常把过程要求类似或相关的功能进行分类,分割为可用于几个任务的通用解决方案的小任务,这些小任务以相应的程序段表示,称为块(FC或FB)。OB1通过调用这些程序块来完成整个自动化控制任务。
结构化程序的特点是每个块(FC或FB)在OB1中可能会被多次调用,以完成具有相同过程工艺要求的不同控制对象。这种结构可简化程序设计过程、减小代码长度、提高编程效率,比较适合于较复杂自动化控制任务的设计。
利用Shift移位指令的线性化编程方法
梯形图指令
EN:Enable 允许输入,使能输入
IN:待移位的原数据
N:要移位的位数
ENO:Enable Out,使能输出
OUT:移位操作的结果
指令使用注意
1、IN、OUT数据类型要与移位指令名称中的类型一致才可移位
2、N的表示方法
可用BCD码表示:C#x 范围0~15
可用16进制数表示:W#16#X 范围:W#16#1~W#16#FFFF
可用存储单元来表示:MWx
3、明确存储器中数据的存放格式
多气缸的应用A+A-B+C+C-B-A+A-
气动回路
1)实现A+A-B+C+C-B-A+A-
2)手动方式下,按下start,按顺序执行
3)自动方式下,按下start,循环执行上述动作10次且循环间隔2s
4)自动方式下,按下pause,工步停止,按下start,当前工步继续 进行,按下stop,1个循环结束后停止
相关问答
plc实数数据的线性化什么意思?
在PLC(可编程逻辑控制器)编程中,实数数据的线性化通常指的是将一种非线性的数据或信号转换为线性数据或信号的过程。这种转换可能是为了更方便地处理数据,或...
西门子plc如何学习?需要什么plc编程软件?
需要学习PLC首先需要知道PLC编程的方式:线性编程、模块化编程、结构化编程。对于西门子PLC,以结构化编程为主,但可以使用线性编程和模块化编程,对于结构化编...
plc模拟量液位百分比怎么编程?
第二种用模拟量一个测量位测量位跟随水平面走,有点类似电子尺之类的要有明显的线性关系。根据总长与两个极限限位的电压值或者电流值计算出测量位与电压或者电...
关于三菱PLC中的数据转换,求?
模拟量值和A/D转换值的转换-假设模拟量的标准电信号是A0—Am(如:4—20mA),A/D转换后数值为D0—Dm(如:6400—32000),设模拟量的标准电信号是A,A/D转换...模...
三菱plc的模拟量程序如何编写,想控制变频器的频率?
三菱plc的模拟量程序如何编写,想控制变频器的频率,这个问题是变频器模拟量控制的基本,它的原理很简单采用0-10v或者0-20ma的直流信号去调节变频器的输出频率,...
编码器怎么编程-九月初五i的回答-懂得
编码器编程:是将信号(如比特流)或数据进行编制、转换为可用以通讯、传输和存储的信号形式的设备。编码器把角位移或直线位移转换成电信号,前者称为...
PLC发多少脉冲给伺服电机转一圈,脉冲频率该怎么算?
要确定PLC发多少脉冲给伺服电机转一圈,需要知道伺服电机的编码器分辨率,也就是每转多少个脉冲。然后,计算出整个系统需要的脉冲数,即脉冲频率。假设伺服电机...
plc怎么转换成模拟量?
首先,PLC用传感器测量我们所需要的参数,通过变送器将此参数变换成0~10V或者4~20mA,现在很多传感器都是自带变送器的,直接就输出模拟量,建议大家在项目中选...
plc五个工作原理?
PLC组成1.CPU运算和控制中心起“心脏”作用。纵:当从编程器输入的程序存入到用户程序存储器中,然后CPU根据系统所赋予的功能(系统程序存储器的解释编译程序...
plc与模拟量温度传感器算法?
一、说明:公式:Y=K*X+b信号:4-20mAPLC模拟量输入数据范围(变量X):0-32000仪表量程(变量Y):10-100对应关系:4-20mA转换为6400-32000转换为10...