使用PLC模拟电位器进行编程主要涉及读取电位器的值,并将其转换为PLC可以处理的数字信号。以下是一个使用西门子S7-200系列PLC的示例程序,展示了如何通过模拟电位器调整定时器的设定值。
方案1:使用模拟电位器调整定时器设定值
初始化
将模拟电位器的值(SMB28和SMB29)从0到255转换为数字值,并存储在特殊存储器字节中(例如,POT0和POT1)。
粗调
通过程序中的偏移量(例如,20ms)对定时器进行粗调。
细调
每个定时器周期后,执行子程序,将POT0的值(在SMB28中)读取到AC1,除以2,再加上200ms偏移量,然后存回AC2。
显示
将AC2中的定时器循环计数值加并拷贝到输出字节(例如,QB0)以供显示。
方案2:使用模拟电位器的扫描值调整定时器设定值
初始化
将模拟电位器的值(SMB28和SMB29)从0到255转换为数字值,并存储在特殊存储器字节中(例如,POT0和POT1)。
累加和平均
对电位器1(POT1)的100次扫描值在AC3中累加后并取平均,再存入VW14。
保护限值
如果累加值低于低保护限值(例如,VW16),则将新值存入VW14、VW16和VW18中。
限值调整
对VW14、VW16和VW18的值分别减、加3ms,作为新的限值。
显示
将VW18中的平均值传回主程序作为定时器设定值,并拷贝到输出字节(例如,VW20)。
方案3:直接使用模拟电位器的值作为定时器设定值
初始化
将模拟电位器的值(SMB28和SMB29)从0到255转换为数字值,并存储在特殊存储器字节中(例如,POT0和POT1)。
显示
将POT0的值直接作为定时器QB0的设定值,并拷贝到输出字节(例如,QB0)以供显示。
示例程序(S7-200系列PLC)
```pascal
// 方案1
LD SM0.1 // 启动
LD INCW MOVB R T33 AC2 AC2,QB0 // 如果T33计时到,则AC2加1,即定时器循环计数
MOVB AC2,QB0 // 将AC2的最低有效字节拷贝到输出字节QB0,以供显示
T33,1 // 定时器T33复位
// 方案2
LD CALL VW18 // 调用子程序计算平均值
LD TON CALL I0.0 // 如果输入I0.0为1状态,则选方案1
LD INCW MOVB R T33 AC2 AC2,QB0 // 如果T33计时到,则AC2加1,即定时器循环计数
MOVB AC2,QB0 // 将AC2的最低有效字节拷贝到输出字节QB0,以供显示
T33,1 // 定时器T33复位
// 方案3
LD SM0.1 // 启动
LD INCW MOVB R T33 AC2 AC2,QB0 // 如果T33计时到,则AC2加1,即定时器循环计数
MOVB POT0,AC1 // 将POT0的值读取到AC1
DIVW 2 // AC1除以2
ADDW 200 // AC1加上200ms偏移量
MOVW AC1,AC2 // 将结果存回AC2
MOVB AC2,QB0 // 将AC2的最低有效字节拷贝到输出字节QB0,以供显示
T33,1 // 定时器T33复位
```
注意事项
模拟电位器的连接:
确保模拟电位器的电源和输出端正确连接到PLC的模拟量输入模块。
分辨率和范围:
根据实际需求选择合适的模拟电位器分辨率(例如,10V或5V)和PLC模拟量输入模块的范围(