我们正在尝试对采样数据进行实时测量/计算。我们之前的经验是基于C
编程的。我想知道是否有人可以帮助我将实时c
编程结构转换为 PLC IEC61131 结构化文本?
对于实时控制循环(具有恒定循环周期),我们需要一个开始计时器、一个结束计时器和一个等待函数,其工作方式如下:
while(1) {
t_start=timems(); /* a variable gets the current processor time in ms*/
/*... here the function performs the calculation...*/
t_stop=timems(); /* a variable gets the current processor time in ms*/
deltaT=t_stop-t_start; /* time difference between the start of the loop and end of the loop is calculated*/;
waitms(loop_constant-deltaT); /* the loop waits for the remainder of the constant loop time before the next iteration*/
}
具体来说,我想知道我们如何在 IEC61131 中实现这些时序结构?我认为我们可以使用 TON 进行延迟。但是,非常感谢任何有关如何从处理器获取时间的建议。
(这篇文章讨论了可以编写代码并将其传输到 IEC61131。但是,出于教育目的,最好在 IEC61131 中编写代码。)
ps1:我正在开发一个 SEL-3350 设备,该设备配备了用于编写 IEC61131 程序的 CODESYS 固件。
ps2:经过几天的搜索,我明白了基于C编程的实时控制和IEC61131(使用CODESYS)的实时控制之间的区别。
基本上,当您使用 PLC 设备进行编码时,您可以在任务管理器中选择设置控制器处理周期的属性。因此,与“C”不同,不需要执行无限循环(while (1)),软件会处理它。例如,在 CODESYS 环境中,将程序类型选择为“循环”,将间隔时间选择为“循环常数”,这将类似于上面提到的 C 代码。