我希望用S7-200 Smart向导生成的PID控制算法控制固态继电器实现恒温控制,固态继电器为直流固态继电器,输入为5V-24V,输出为5-60V(实际用直流48V开关电源供电)。
事先,已经成功测试用脉冲输出指令(PLS)控制Q0.0口输出PWM信号,进而控制固态继电器工作,控制加热丝加热。程序如下:

但是当我对上面的脉冲输出指令进行扩展,将向导生成的PID程序控制添加到其中,却无法实现PID控制脉冲的占空比?主要表现是PID的输出(Output引脚)一直为0。
我把主要的PID向导设置步骤和程序贴在这里,请大家帮忙看看是什么问题?
PID向导设置步骤
前面的PID向导设置步骤省略,参数部分如下进行设置。

附:话说PID向导设置的采样时间最小只能是0.1s,有一定的局限。
我的闭环温度控制,采用热电阻来检测温度,过程变量选择了“温度x10℃”

附:标定选项没有理解是什么意思,暂时用的上面的设置。
输出部分选择“模拟量”

附:查找过去的帖子,有说采用“数字量的”,但是如果采用数字量,其操作数类型为:I、Q、M等,无法解决用这些数据类型来控制脉冲输出(脉冲输出的类型为SMW70,得是VW***类型)。如下图所示:

而如果选择了“模拟量”,则生成的PID程序,能够满足将Output给到SMW70。
报警、代码、存储器分配、组件等都保留默认设置。
完整程序
保持原有的PWM程序,添加VW500(占空比变量),输出给SMW70。在后面的代码中,将PID的Output传输给VW500,VW500再输出给SMW70,实现对占空比的设置(这种思路不知是否正确,这也是当前程序的***问题)

参考网络上的程序,添加了一个比例、积分和微分赋值程序段。

对PID控制算法的调用

附:在上图中,AIW16为热电阻采集的温度值。
但是在线监测时,如下图所示,AIW16为热电阻测温(25.1℃,室温,应该是正确的),Setpoint为设定温度(这个地方我不确定,暂时写1000.0,不知1000.0是否代表100℃)。

但***的问题是:VW500始终为0,按理说AIW16与Setpoint有差距,PID算法应该有差值。
为什么PID控制是没有输出呢?????
加热试验实物图如下

固态继电器实物图如下
