模拟量采集程序编写
作业解答第二版

2 F1<0
3 F2<0
4 F3<0
坐标 进给
-x +y +y +y
偏差计算`
F0=0
F1=F0–2X0+1 =–11 F2=F1+2Y1+1 =–10 F3=F2+2Y2+1 =-7
F4=F3+ Y3+1 =–2
坐标计算
X0=6 Y0=0 X1=X0–1=5 Y1=0
X2=5 Y2=Y1+1=1
X3=5 Y3=Y2+1=2
答:(1) 第一象限直线插补程序 设内存中三个单元XE、YE、FM分别存放直线终点横坐标、 终点纵坐标、加工点偏差。
data segment XE DB xe YE DB yz FM DB 0 ZF DB 0
data ends
MOV ADD MOV LAB1:MOV CMP
AL,XE AL,YE CL,AL ;CL存NXY AL,FM AL,00H
1)
(1
z 1)Z
10
s
2
(0.1s
1)
10(1
z
1
)Z
1 s2
0.1 s
0.1 s 10
10(1
z
1
)
(1
z 1 z 1
)
2
0.1
1
1 z
1
0.1 1
1 z 1e101
(1
9z1(1 0.1z1) z1)(1 4.5105
z
1 )
阶跃输入对应 q 1 由被控对象传递函数,得 d 0 由广义对象传递函数,得 v 1, j 1,u 0
修改通道号和计数器 修改采样值缓冲区指针
PLC模拟量的采集

PLC模拟量的采集
现在自动化控制过程中,一些简单的控制用IO点就能将所有的动作实现,而复杂一点的工程项目,都会有模拟量采集或者通信这样的需求,我做项目的时候,需要使用模拟量采集的信号,查了很多相关的资料,最终我选择使用指令中的标准与缩放两个指令来实现这个控制的,这里贴出我的程序,希望能给大家一点点帮助。
以前我还使用过S7-200这款plc,还有欧姆龙CJ1M中也使用过,下面这些图片大家先看下,有的可能以后你们使用中会遇到一些,是可以直接套用的。
面这个图是S7-1200,采集的是0-5V的模拟量信号,对应的压力是-5WC到5WC,因为是第一次使用,而我在测试的过程中并没有发现问题,所以贴出来,如果大家发现错误,希望指导下。
上面的图,是我最早使用的模拟量采集方式,电流信号是4到20mA 的,转换的频率是0-50HZ的,而这里对应的数值是6400到32000,后面有频率转换,我就没有贴出来了。
这两个是欧姆龙CJ1M模拟量采集的图片,如果看到熟悉,可能会发现我之前写的一个PID调节中,有用到这个图,因为PID调节,是肯定需要模拟量采集的,所以我就又把这个图放在这里了,欧姆龙模
拟量采集需要设置的地方会多点,在硬件模块中都需要设置好,当然三个PLC中涉及到接线也是,这里都要看下原本说明书中的介绍接线的内容,不要将线接错。
plc采集模拟量中的最大值

plc采集模拟量中的最大值
要在PLC中采集模拟量的最大值,通常需要以下几个步骤:
1. 模拟量输入:首先,确保你的PLC有一个或多个模拟量输入模块。
这些模块将连续的模拟信号转换为PLC可以处理的数字值。
2. 数据采集:使用PLC编程语言(如Ladder Logic、Structured Text或Function Block Diagram等)编写程序,定期从模拟输入模块读取数据。
这些数据通常表示当前检测到的模拟量(例如温度、压力或流量等)。
3. 找出最大值:在每次读取模拟量数据后,将它与当前存储的最大值进行比较。
如果当前读取的模拟量值大于存储的最大值,则更新最大值。
4. 存储和监控:将最大值存储在PLC的内存中,并可以在需要时通过HMI (人机界面)或SCADA(监控和数据采集)系统进行查看。
5. 报警和故障检测:如果模拟量超过预设的最大值,可以触发报警或故障检测,以便操作员或维护人员采取适当的措施。
以下是一个简单的例子,使用Ladder Logic语言在Siemens PLC中实现这一功能:
```ladder
// 假设模拟量输入是AI0,最大值存储在D10中
IF AI0 > D10 THEN D10 := AI0;
```
请注意,这只是一个基本示例。
实际应用中,你可能需要考虑滤波、采样时间、安全机制和多个输入通道等问题。
此外,不同的PLC制造商和编程环境可能会有不同的实现方式。
模拟量采集及滤波算法

模拟量采集及滤波算法1 模拟量和数字量一样,也是主程序结束时更新的;也就是说用plc编程是达不到很高的准确性的。
2 如果你是用模拟滤波。
那就是要再电路上加入有源或者无源滤波电路,你说得是数字滤波。
也就是用软件来实现滤波。
本质上讲不存在“采集—滤波—存储”和“采集—存储—滤波”只说。
不管什么数字滤波都是要先采集存储起来,通过一定得滤波算法得出你期望得真实值得。
3 以前有个专门得帖子说这个问题。
我转过来你看看10种软件滤波方法1、限幅滤波法(又称程序判断滤波法)A、方法:根据经验判断,确定两次采样允许的最大偏差值(设为A)每次检测到新值时判断:如果本次值与上次值之差<=A,则本次值有效如果本次值与上次值之差>A,则本次值无效,放弃本次值,用上次值代替本次值B、优点:能有效克服因偶然因素引起的脉冲干扰C、缺点无法抑制那种周期性的干扰平滑度差2、中位值滤波法A、方法:连续采样N次(N取奇数)把N次采样值按大小排列取中间值为本次有效值B、优点:能有效克服因偶然因素引起的波动干扰对温度、液位的变化缓慢的被测参数有良好的滤波效果C、缺点:对流量、速度等快速变化的参数不宜3、算术平均滤波法A、方法:连续取N个采样值进行算术平均运算N值较大时:信号平滑度较高,但灵敏度较低N值较小时:信号平滑度较低,但灵敏度较高N值的选取:一般流量,N=12;压力:N=4B、优点:适用于对一般具有随机干扰的信号进行滤波这样信号的特点是有一个平均值,信号在某一数值范围附近上下波动C、缺点:对于测量速度较慢或要求数据计算速度较快的实时控制不适用比较浪费RAM4、递推平均滤波法(又称滑动平均滤波法)A、方法:把连续取N个采样值看成一个队列队列的长度固定为N每次采样到一个新数据放入队尾,并扔掉原来队首的一次数据.(先进先出原则) 把队列中的N个数据进行算术平均运算,就可获得新的滤波结果N值的选取:流量,N=12;压力:N=4;液面,N=4~12;温度,N=1~4B、优点:对周期性干扰有良好的抑制作用,平滑度高适用于高频振荡的系统C、缺点:灵敏度低对偶然出现的脉冲性干扰的抑制作用较差不易消除由于脉冲干扰所引起的采样值偏差不适用于脉冲干扰比较严重的场合比较浪费RAM5、中位值平均滤波法(又称防脉冲干扰平均滤波法)A、方法:相当于“中位值滤波法”+“算术平均滤波法”连续采样N个数据,去掉一个最大值和一个最小值然后计算N-2个数据的算术平均值N值的选取:3~14B、优点:融合了两种滤波法的优点对于偶然出现的脉冲性干扰,可消除由于脉冲干扰所引起的采样值偏差C、缺点:测量速度较慢,和算术平均滤波法一样比较浪费RAM6、限幅平均滤波法A、方法:相当于“限幅滤波法”+“递推平均滤波法”每次采样到的新数据先进行限幅处理,再送入队列进行递推平均滤波处理B、优点:融合了两种滤波法的优点对于偶然出现的脉冲性干扰,可消除由于脉冲干扰所引起的采样值偏差C、缺点:比较浪费RAM7、一阶滞后滤波法A、方法:取a=0~1本次滤波结果=(1-a)*本次采样值+a*上次滤波结果B、优点:对周期性干扰具有良好的抑制作用适用于波动频率较高的场合C、缺点:相位滞后,灵敏度低滞后程度取决于a值大小不能消除滤波频率高于采样频率的1/2的干扰信号8、加权递推平均滤波法A、方法:是对递推平均滤波法的改进,即不同时刻的数据加以不同的权通常是,越接近现时刻的数据,权取得越大。
西门子S7-300PLC模拟量编程

西门子S7-300PLC模拟量编程西门子S7-300PLC模拟量方面的实例,包含了以下几个方面的要点:1、对变送器进行取值,并进行控制2、对模数功能块FC105 进行调用3、对AI 模块进行设置4、对AI 量程块进行选择这个实例,调试的是一个流量调节回路中,流量变送器输出2-2-MA DC信号到SM331 模拟输入模块,模块将该信号转换成浮点数,然后在程序中调用FC105将该值转换成工程量,我们就可以监视实际工程中的流量值了。
模拟量AI 采用SM311 模块是8x12Bit(8 通道12 位)对应货号是6ES7 331-7KF02-OABO,在模数转化上利用传感器或变送器的,电压或电流取出的值,到AI 模块上进行转换,然后把值传给西门子的CPU 进行处理,从而检测控制传感器的值,如图:模拟量输入模块模拟量输入用于连接电压和电流传感器、热电耦、电阻和热电阻,用来实现PLC 与模拟量过程信号的连接。
模拟量输入模块将从过程发送来的模拟信号转换成供PLC 内部处理用的数字信号。
本次工程用的是SM311 输入模块如下图所示。
该模块具有如下特点:分辨率为9 到15 位+符号位(用于不同的转换时间),可设置不同的测量范围。
通过量程模块可以机械调整电流/电压的基本测量范围。
用STEP 7硬件组态工具可进行微调。
模块把诊断和超限中断发送到可编程控制器的CPU 中。
模块向CPU 发送详细的诊断信息。
模拟量输入模块的接线方式两线制电流和四线制电流都只有两根信号线,它们之间的主要区别在于:两线制电流的两根信号线既要给传感器或者变送器供电,又要提供电流信号;而四线制电流的两根信号线只提供电流信号。
因此,通常提供两线制电流信号的传感器或者变送器是无源的;而提供四线制电流信号的传感器或者变送器是有源的。
因此,当PLC 的模板输入通道设定为连接四线制传感器时,PLC 只从模板通道的端子上采集模拟信号,如图2-3,而当PLC 的模板输入通道设定为连接二线制传感器时,如图2-2,PLC 的模拟输入模板的通道上还要向外输出一个直流24V的电源,以驱动两线制传感器工作。
PLC模拟量编程实例。

PLC模拟量编程实例。
本文介绍了PLC编程中模拟量输入输出模块的应用。
相比于使用位变量进行程序控制,模拟量编程更加困难,因为它需要考虑模拟量的转换公式推导和使用。
不同的传感变送器需要使用不同的转换公式进行转换,否则编程结果将是错误的。
本文以S7-200的模拟量输入输出模块EM235为例,对三种温度传感器进行了转换公式的推导。
编程者需要根据正确的转换公式进行编程,才能获得满意的效果。
在进行模拟量编程时,还需要考虑传感变送器与模块的连接。
对于输出4~20ma电流信号的传感变送器,需要外接24V电源电压才能工作。
将其+、-二根连线分别与24V电源的正负极相连,在被测量正常变化范围内,此回路将产生4~20ma电流。
EM235模块第一路模拟输入的框图有三个输入端,其中A+与A-为A/D转换器的+ -输入端,RA与A-之间并接250Ω标准电阻。
A/D转换器是正逻辑电路,它的输入是~5V电压信号,A-为公共端,与PLC的24V电源的负极相连。
总之,模拟量编程需要考虑转换公式和连接方式等因素,编程者需要根据具体情况进行调整。
正确的连接方式是将24V电源的负极接到模块的A-端,将传感器输出的负极接到RA端,然后将RA端与A+端并接一起。
这样,由传感器输出的4~20mA电流会经过RA流入250Ω标准电阻,产生~5V电压并加在A+与A-输入端上。
切记不要从24V正极处断开连接,否则模块将无法正常工作。
对于第二种电压输出的传感器,模块的输入应设置为~5V电压模式,只需将变送器输出负极连接到A+,RA端则不需要连接。
根据转换后变量的精度要求,转换公式编程可以采用整数运算或实数运算。
下面是两种形式的梯形图:A。
整数运算的梯形图:该梯形图是针对第一种温度传感器(测温:~200,输出:4~20mA)按公式(2-1)以整数运算编写的转换程序,可以作为一个子程序进行调用。
B。
实数运算的梯形图:该梯形图是针对一个真空压力变送器(量程:~0.1Mpa,输出:4~20mA)按公式(2-1)以实数运算编写的转换程序,可以作为一个子程序进行调用。
scl编程一百例

scl编程一百例以SCL编程一百例为标题SCL(Structured Control Language)是一种用于编写PLC (Programmable Logic Controller)程序的高级编程语言。
它的语法结构简单明了,逻辑性强,被广泛应用于自动化控制领域。
本文将通过一百个例子来展示SCL编程的灵活性和强大功能。
第一例:开关控制灯泡使用SCL编程实现一个简单的开关控制灯泡的程序。
当开关打开时,灯泡亮起;当开关关闭时,灯泡熄灭。
第二例:计数器使用SCL编程实现一个计数器程序。
通过按下按钮,每按一次计数器加一,同时在HMI(Human Machine Interface)上显示当前计数值。
第三例:温度控制使用SCL编程实现一个温度控制程序。
通过读取温度传感器的数值,根据设定的温度范围控制加热器的开关状态,以保持温度在设定范围内。
第四例:流水线控制使用SCL编程实现一个流水线控制程序。
通过控制电机的开关状态,实现产品在不同工位之间的传送和加工。
第五例:报警系统使用SCL编程实现一个报警系统。
通过监测不同传感器的状态,当某个传感器触发时,触发相应的报警信号。
第六例:自动化包装机使用SCL编程实现一个自动化包装机。
通过控制电机、传感器和气缸的状态,实现产品的自动分拣、包装和封箱。
第七例:电梯控制使用SCL编程实现一个电梯控制程序。
通过读取按钮的信号,根据乘客的需求控制电梯的运行和停靠。
第八例:流量控制使用SCL编程实现一个流量控制程序。
通过读取流量传感器的数值,根据设定的流量范围控制阀门的开关状态,以保持流量在设定范围内。
第九例:定时器使用SCL编程实现一个定时器程序。
通过设定时间参数,实现定时触发相应的操作,如定时开关灯、定时启动机器等。
第十例:电机速度控制使用SCL编程实现一个电机速度控制程序。
通过读取编码器的反馈信号,根据设定的速度参数控制电机的转速。
第十一例:压力控制使用SCL编程实现一个压力控制程序。
111如何用组态王进行模拟量采集

如何使用组态王进行模拟量采集组态王是工程上比较常用的几个组态软件之一,今天给大分享一下如何使用组态王通过modbus通讯来采集模拟量数据。
首先选择带有modbusRTU通讯的采集模块,通过模块自带的产品软件,根据需要设置模块通讯参数及各个采集通道的量程。
采集模块具有多种量程可选,根据不同的传感器型号可以选择相应的量程。
值得注意的是,当选择采集电压信号时,要将产品包装打开,将对应通道的跳线帽断开,否则采集值会有误差,电流型的信号则不需要此操作。
在组态王中新建一个工程,在设备组态中新建一个设备,右侧选项中设备驱动选项中选择PLC,选择其中的莫迪康下拉选项中的ModbusRTU 。
点击下一步,按照设置的模块属性配置相应的内容。
创建完成后,就圆圈中黄色的为跳线帽会出现配置好的设备。
同时,也需要对组态软件的com口进行配置,要与所选模块的参数相对应,否则会无法通讯。
接下来在数据库组态中的数据词典中,添加8个变量,分别对应采集模块的8个采集通道。
参照模块使用说明书中的寄存器地址,以及设置好的量程,使各个变量与相应的通道对应起来。
按照需要设置变量名,变量类型选择I/O实型,最小原始值0,最大原始值65535,最小最大值分别填所选通道的量程,如果选择0~10V,Z则填最小值0,最大值10。
设备连接选择添加的模块,按照对应的地址表填写寄存器,数据类型选择USHORT,其他选择默认。
如果数据要进行报警和记录,在相应的区域进行设置。
接下来在窗口组态界面新建一个窗口,在窗口中添加文本显示控件,将每个控件分别对应创建好的每路采集数据的变量,按照需要设置显示小数位及格式。
将采集模块通过com1与电脑相连接,运行组态程序,在模块上输入相应的电压电流信号,就能在屏幕上显示输出,此时就已经完成一个简单的数据采集系统了。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
7.3.4 温度的检测与控制实训
时间:2012-05-19 13:31来源:未知作者: 点击: 942 次
温度的检测与控制实训
用PLC构成温度的检测和控制系统,接线图及原理图如图7-40,7-41所示。
1. 控制要求
温度控制原理:通过电压加热电热丝产生温度,温度再通过温度变送器变送为电压。
加热电热丝时根据加热时间的长短可产生不一样的热能,这就需用到脉冲。
输入电压不同就能产生不一样的脉宽,输入电压越大,脉宽越宽,通电时间越长,热能越大,温度越高,输出电压就越高。
PID闭环控制:通过PLC+A/D+D/A实现PID闭环控制,接线图及原理图如图
7-40,7-41所示。
比例,积分,微分系数取得合适系统就容易稳定,这些都可以通过PLC软件编程来实现。
2. 程序设计
如图7-42所示梯形图模拟量模块以EM235或EM231+EM232为例。
PLC程序设计常用的方法主要有经验设计法、继电器控制电路转换为梯形图法、逻辑设计法、顺序控制设计法等。
1. 经验设计法经验设计法即在一些典型的控制电路程序的基础上,根据被控制对象的具体要求,进行选择组合,并多次反复调试和修改梯形图,有时需增加一些辅助触点和中间编程环节,才能达到控制要求。
这种方法没有规律可遵循,设计所用的时间和设计质量与设计者的经验有很大的关系,所以称为经验设计法。
经验设计法用于较简单的梯形图设计。
应用经验设计法必须熟记一些典型的控制电路,如起保停电路、脉冲发生电路等,这些电路在前面的章节中已经介绍过。
2. 继电器控制电路转换为梯形图法
继电器接触器控制系统经过长期的使用,已有一套能完成系统要求的控制功能并经过验证的控制电路图,而PLC控制的梯形图和继电器接触器控制电路图很相似,因此可以直接将经过验证的继电器接触器控制电路图转换成梯形图。
主要步骤如下:
(1)熟悉现有的继电器控制线路。
(2)对照PLC的I/O端子接线图,将继电器电路图上的被控器件(如接触器线圈、指示灯、电磁阀等)换成接线图上对应的输出点的编号,将电路图上的输入装置(如传感器、按钮开关、行程开关等)触点都换成对应的输入点的编号。
(3)将继电器电路图中的中间继电器、定时器,用PLC的辅助继电器、定时器来代替。
(4)画出全部梯形图,并予以简化和修改。
这种方法对简单的控制系统是可行的,比较方便,但较复杂的控制电路,就不适用了。
【例7-1】图7-1为电动机Y/△减压起动控制主电路和电气控制的原理图。
(1)工作原理如下:按下启动按钮SB2,KM1、KM3、KT通电并自保,电动机接成Y型起动,2s后,KT动作,使KM3断电,KM2通电吸合,电动机接成△型运行。
按下停止按扭SB1,电动机停止运行。