浔之漫智控技术(上海)有限公司
西门子PLC模块 , CPU模块 , DP通讯电缆 , 6GK交换机
西门子低压电器代理-2023

PLC 顺序控制在工业控制中占有很大分量,对复杂系统采用功能图法, 它把整个系统分成几个时间段,在此时间段里可以有一个输出,也可以有多 个输出,但它们各自状态不变。一旦输入有一个变化,状态就发生变化,给 每个时间段设定一个状态器,利用这些状态器的组合控制输出。电动机顺序 控制要求如下: (1)按下电动机 1 启动按钮时,电动机 1 启动并连续运转,并为电动 机 2 启动做好准备;当按下电动机 2 启动按钮后,电动机 2 启动并连续 运转。 (2)电动机 1 处于停止状态时,电动机 2 不能启动。 (3)按下停止按钮,电动机 1、电动机 2 停止运转与FB相比,FC的局部变量多了一个RET_VAL(返回值)。它实际上是输出参数。默认的情况它是没有数据类型的,在调用FC时也看不到这个输出参数。只要在局部变量表中设置RET_VAL的数据类型,在调用时就能看到它在方框的右边出现,所以它是一个输出参数。

我很长时间一直不理解为什么要设置这样一个局部变量,而不是将它纳入输出参数。后来偶然在一个资料上看到,这是为了和plc编程语言的IEC 61131-3一致而设置的。


37.png

功能FC的英语为Function,也可以像博途那样,将Function翻译为函数。IEC的函数和C语言的函数一样,执行后会产生一个返回值。IEC 61131-3的FC也只有一个返回值,不用设置它的名称,返回值的名称和FC的名称相同。因此IEC 61131-3的FC只有返回值这样一个输出参数。
西门子的FC对输出参数的个数没有限制,比IEC 61131-3的FC更好用一些。

1、定时器在子程序中的表现:
在条件调用子程序的主程序中,当停止子程序调用时,如果定时器已经激活正在计时,停止调用这个子程序会造成定时器的失控。不管此时定时器前面的激活条件如何变化,定时器(1ms、10ms 时基的)会一直走到大值,定时器输出也会在达到设定值时接通;(100ms 时基的定时器会在上述情况下停止计时,但在逻辑上处于失控状态)。
 如果用 SM0.0 调用子程序;或者在控制逻辑的时序上做到能够保证定时功能完整执行,定时器会正常运行。使用条件调用含有定时器的子程序时,一定要注意时序逻辑,以免造成程序运行错误。
2、使用定时器加自复位做一个不断重复的计时,调用其他功能或子程序时,为何看起来工作不规律?
请注意《S7-200系统手册》中,或者前文关于三种定时器刷新规律的描述。
按这种方法使用定时器时,定时器的置位、复位可能与程序扫描周期不配合,存在造成上述问题的机制。
定时比较短的定时任务应使用“定时中断”功能,这样更为可靠。

1:采样周期默认设置为1S,实际编程中这个应该怎么进行设置?
2:必须用SM0.0调用,可是我想在一段时间内才进行PID运算,怎么设置?
3:当偏差变大,则PID输出结果也变大;那么当设定值小于过程值,即偏差变成负值时候,PID输出结果怎么变化?
4:S7-200用向导编程PID之后,直接用SM0.0调用就可以了吗?我看有的资料说还要写入回路控制 0才能运行?。
5:向导生成PID输出的范围是多少?如果用这个输出值来控制一个+-10V的阀门,怎么把PID输出转化到+-10V上面?

69.jpg6:程序中的PID子程序运行时,怎么能让它运行20MS,然后退出运行?

答:1:采样周期默认设置为1S,实际编程中这个应该怎么进行设置?
、编程时指定的PID控制器采样时间必须与实际的采样时间一致。S7-200中PID的采样时间精度用定时中断来保证。
、定时中断:
S7-200有四个定时中断定时器,两个特殊寄存器(SMB34/SMB35)和两个定时器( T32/T96)中断。中断定时计时**,可以用来执行模拟量定时采样等任务。
2:必须用SM0.0调用,可是我想在一段时间内才进行PID运算,怎么设置?
定时中断(SMB34/SMB35)长定时为255ms,如何实现更长时间的定时?
可以采用T32/T96中断,长时间可到32.767s。在定时中断服务程序中对进入中断的次数进行计数,也能实现更长时间的中断延时。
3:当偏差变大,则PID输出结果也变大;那么当设定值小于过程值,即偏差变成负值时候,PID输出结果怎么变化?
、过程变量超过设定值很多就会很大的超调。产生原因:积分时间(Integral time)可能太高
解决方法:降低积分时间 。
、得到一个非常不稳定的PID。产生原因:如果用了微分,可能是微分参数有问题。没有微分,可能是增益(Gain)值太高。
解决方法:
调整微分参数到0-1的范围内 ,根据回路调节特性将增益值降低,低可从0.x 开始逐渐增大往上调,直到获得稳定的PID。
4:S7-200用向导编程PID之后,直接用SM0.0调用就可以了吗?我看有的资料说还要写入回路控制 0才能运行?
详见上传的图片。
5:向导生成PID输出的范围是多少?如果用这个输出值来控制一个+-10V的阀门,怎么把PID输出转化到+-10V上面?
应用在指令库中,子程序Scale_I_to_R可用来进行模拟量输入到S7-200内部数据的转换;子程序Scale_R_I可用于内部数据到模拟量输出的转换。
6:程序中的PID子程序运行时,怎么能让它运行20MS,然后退出运行?
PID需要有一个调节过程,必须是根据反馈连续地调节才能趋于稳定。不知楼主的用意是什么?限时20MS,对于信号的反馈时间与硬件有关。

发布时间:2023-10-26
展开全文
优质商家推荐 拨打电话