周报90期 | 西门子PID/模拟量/运动控制/通信等问答锦集
1.PID向导生成的程序为何不执行?
答:必须保证用SM0.0无条件调用PID0_CTRL程序,在程序的其它部分不要再使用SMB34定时中断,也不要对SMB34赋值,确认当前工作状态:手动还是自动。
2.如何实现PID反作用调节?
答:在有些控制中需要PID反作用调节。例如:在夏天控制空调制冷时,若反馈温度(过程值)低于设定温度,需要关阀,减小输出控制(减少冷水流量等),这就是PID反作用调节(在PID正作用中若过程值小于设定值,则需要增大输出控制)。
若想实现PID反作用调节,需要把PID回路的增益设为负数。对于增益为0的积分或微分控制来说,如果指定积分时间、微分时间为负值,则是反作用回路。
3. 如何根据工艺要求有选择地投入PID功能?
答:可使用"手动/自动"切换的功能。PID向导生成的PID功能块需要保证每个扫描周期都调用,所以建议在主程序内使用SM0.0调用。
4. 做完PID向导后,如何知道向导中设定值,过程值及PID等参数所用的地址?
答:做完PID向导后可在符号表中,查看PID向导所生成的符号表(上例中为PID0_SYM),可看到各参数所用的详细地址,及数值范围,在数据块中,查看PID指令回路表的相关参数。如图所示:
5. PID已经调整合适,如何正式确定参数?
答:可以在数据块中直接写入参数,作为初始值使用。
6. 对于某个具体的PID控制项目,是否可能事先得知比较合适的参数?有没有相关的经验数据?
答:虽然有理论上计算PID参数的方法,但由于闭环调节的影响因素很多而不能全部在数学上精确地描述,计算出的数值往往没有什么实际意义。因此,除了实际调试获得参数外,没有什么可用的经验参数值存在。甚至对于两套看似一样的系统,都可能通过实际调试得到完全不同的参数值。
7. PID控制不稳定怎么办?如何调试PID?
答:闭环系统的调试,首先应当做开环测试。所谓开环,就是在PID调节器不投入工作的时候,观察:1.反馈通道的信号是否稳定2.输出通道是否动作正常。
可以试着给出一些比较保守的PID参数,比如放大倍数(增益)不要太大,可以小于1,积分时间不要太短,以免引起振荡。在这个基础上,可以直接投入运行观察反馈的波形变化。给出一个阶跃给定,观察系统的响应是最好的方法。
如果反馈达到给定值之后,历经多次振荡才能稳定或者根本不稳定,应该考虑是否增益过大、积分时间过短;如果反馈迟迟不能跟随给定,上升速度很慢,应该考虑是否增益过小、积分时间过长……
总之,PID参数的调试是一个综合的、互相影响的过程,实际调试过程中的多次尝试是非常重要的步骤,也是必须的。
8. 没有采用积分控制时,为何反馈达不到给定?
答:这是必然的。因为积分控制的作用在于消除纯比例调节系统固有的“静差”。没有积分控制的比例控制系统中,没有偏差就没有输出量,没有输出就不能维持反馈值与给定值相等。所以永远不能做到没有偏差。
9. S7-200 SMART控制变频器,在变频器也有PID控制功能时,应当使用谁的PID功能?
答:可以根据具体情况使用。一般来说,如果需要控制的变量直接与变频器直接有关,比如变频水泵控制水压等,可以优先考虑使用变频器的PID功能。
10. 做完PID向导后,能否查看PID生成的子程序,中断程序?
答:PID向导生成的子程序,中断程序用户是无法看到的,也不能对其进行修改。没有密码能够打开这些子程序,一般的应用也没有必要打开查看。
11. 指令块与向导使用的PID回路号是否可以重复?
答:不可以重复,使用PID向导时,对应回路的指令块也会调用,所以指令块与向导使用的PID回路号不能重复,否则会产生预想不到的结果。
12. 同一个程序里既使用PID指令块又使用向导,PID数目怎样计算?
答:使用PID向导时,对应回路的指令块也会调用,所以PID指令块与向导一共支持8个。
13. PID指令块可以在主程序/子程序里调用吗?(PID指令块常见问题)
答:可以,但是不推荐,主程序/子程序的循环时间每个周期都可能不同,不能保证精确的采样,建议用定时中断,例如SMB34/SMB35。
14. SMB34定时最大255ms,如果采样时间是1S怎样实现?(PID指令块常见问题)
答:采样时间是1S,要求PID指令块每隔1S调用一次。可以先做一个250ms的定时中断,然后编程累加判断每4次中断执行一次PID指令即可。
15. PID指令块怎样实现手动调节?(PID指令块常见问题)
答:可以简单地使用"调用/不调用"指令的方式控制自动/手动模式。不调用PID指令时,可以手动给输出地址0.0-1.0之间的实数。
16. PID指令块实现数字量输出?(PID指令块常见问题)
答:1.通过PWM指令,将PID输出值转换为所需时间基准的整数,送到PWM的Pulse,控制脉宽(该法简单易用,但是要求输出点只能是Q0.0或Q0.1)。
2.自己编程实现类似于PWM的输出。(虽然不限制Q点,但编程较复杂,不建议使用,可以直接考虑用PID向导)。
17. S7-1200 模拟量模块的输入/输出阻抗指标是多少?
答:CPU 模拟量输入阻抗:电压型信号:≥ 100 KΩ、信号模板模拟量输入阻抗:电压型信号:≥ 9 MΩ、电流型信号:250Ω、信号模板及信号板模拟量输出阻抗:电压型信号:≥ 1000 Ω、电流型信号:≤ 600 Ω。
18. S7-1200 模拟量模块的输入/输出信号传输距离?
答:模拟量模块的输入/输出信号传输距离,从接线方面考虑,使用双绞屏蔽电缆最大可以连接 100 m 的长度, 还要考虑现场电磁干扰等现实状况。一般电压信号易受现场干扰且长距离传输也会造成信号的衰减,建议尽量近距离传输;电流信号相比电压信号抗干扰能力好些, 相对电压信号传输距离可适当加长。
19. S7-1200 模拟量模块的输入过冲及溢出数值分别是多少?
答:对于电压测量范围,S7-1200 模拟量模块的电压输入值与模块通道显示数值对应关系如下图所示:
过冲范围为 27649至32511;下冲范围为-27649至-32512
上溢范围为 32512至32767,下溢范围为 -32513至-32768
对于电流测量范围,S7-1200 模拟量模块的电流输入值与模块通道显示数值对应关系如下图所示:
过冲范围为 27649至32511;下冲范围为-1至-4864
上溢范围为 32512至32767,下溢范围为 -4865至-32768
20. SM1231 模拟量输入模块未使用通道如何处理?
答:应将未使用的电压输入通道短路。使用导线短接通道的正负两个端子,例如短接 0 通道的 0+ 和 0- 端子,应将未使用的电流输入通道设置在 0 至 20 mA 范围。
21. S7-200SMART PLC运动控制AXISx_MAN是什么指令?
答:AXISx_MAN 子例程(手动模式)将运动轴置为手动模式。这允许电机按不同的速度运行,或沿正向或负向慢进。
22. S7-200 SMART可以控制几个V90 PN?
答:在不挂其他PROFINET设备下,最多可以控制8个V90 PN。
23. S7-200 SMART 是否支持 Modbus ASCII 通信模式?
答:STEP 7-Micro/WIN SMART 软件未提供Modbus ASCII 通信模式指令库。S7-200 SMART CPU若用于Modbus ASCII 通信时,则需要用户使用自由口通信模式进行编程。
24. S7-200 SMART CPU 集成的RS485 端口(端口 0 )以及SB CM01 信号板(端口 1 )两个通信端口能否同时作为 Modbus RTU 主站或者同时作为 Modbus RTU从站?
答:S7-200 SMART V2.2版本支持两个通信端口同时做MODBUS RTU主站,不支持同时做MODBUS RTU从站。
25. S7-200 SMART CPU作为 Modbus RTU 主站如何访问 Modbus 地址范围大于49999 的保持寄存器?
答: 通常 Modbus 协议的保持寄存器范围在 40001 到 49999 之间,这个范围对于多数应用来说已经足够了,但有些 Modbus 从站保持寄存器区的地址会超出该范围。Modbus RTU 主站协议库支持保持寄存器地址范围为(40001 到 49999) 或者(400001 到 465536)。如果 Modbus 从站地址范围为 400001 – 465536,只需在调用 MBUS_MSG 子程序时给 Addr 参数赋相应的值即可,如 416768。
26. S7-200 SMART CPU作为 Modbus RTU 主站,多次调用 MBUS_MSG 指令时,为什么该指令会出现 6# 错误代码?
答:1.同一时间只能有一条 MBUS_MSG 指令处于激活状态,如果激活多条 MBUS_MSG 指令,将执行第一条 MBUS_MSG 指令,所有后续 MBUS_MSG 指令将中止执行并出现 6# 错误代码。多条 MBUS_MSG 指令的执行需要采用轮询方式 。
2. Modbus库存储区中分配的建议地址区与编程中已使用的V存储区有重叠。
27. S7-200 SMART最多可以带多少个IO设备?
答:S7-200 SMART最多可以带8个IO设备。
28. S7-200 SMART和 S7-1200智能设备通信提示如下图所示的错误,应如何解决?
答:导出GSD文件之前,需要进行勾选PN接口的参数由上位IO控制器进行分配。
29. S7-200 SMART CPU在同一时刻能否对同一个远程 CPU 调用多于 8 个 GET/PUT 指令?
答:同一时刻对同一个远程 CPU 可以调用多于 8 个 GET/PUT 指令。同一时刻对同一个远程 CPU 调用多个 GET/PUT 指令只会占用 1 个GET/PUT 主动连接资源,而不是 8 个主动连接资源。
30. 执行 RCV 指令或 XMT 指令时,为什么有时指令会出现红色错误?
答:针对同一通信端口,同一时刻执行多个RCV 指令或 XMT 指令时会报错。S7-200 SMART CPU 集成的RS485 端口以及信号板 SB CM01 工作模式都为半双工,信息的发送与接收不能同时执行。
1. XMT 指令还未发送完成时又触发了新的 XMT 指令。
2. XMT 指令还未发送完成时又触发了新的 RCV 指令。
3. RCV 指令还未接收完成时又触发了新的 XMT 指令。
4. RCV 指令还未接收完成时又触发了新的 RCV 指令。
来源:技成辅导员