【破解】设置 Codesys for Raspberry 每118分钟自动重启Runtime


Codesys for Raspberry 无授权时,试用2小时后会自动退出,重启Runtime后就又恢复2小时试用时长。

官网授权购买地址:
【单核】 https://store.codesys.com/en/codesys-control-for-raspberry-pi-sl.html
【多核】 https://store.codesys.com/en/codesys-control-for-raspberry-pi-mc-sl.html

国内代理商地址:
【单核】 http://store.codesys.cn/codesys/store/detail.html?productId=67
【多核】 http://store.codesys.cn/codesys/store/detail.html?productId=1379272114834759682

对于可间断的非关键应用,权衡的方法是:每118分钟让linux系统自动重启下Codesys相关服务!


设置方法如下:

1)创建重启脚本:

$ sudo nano /opt/codesys/scripts/cron_reboot.sh

在文件中输入如下脚本:

ttime=`date +"%Y-%m-%d %H:%M:%S"`
echo "[ $ttime ] Restart codesys runtime -- by zhw" 
sudo systemctl restart codesyscontrol

给脚本加上执行权限

sudo chmod +x /opt/codesys/scripts/cron_reboot.sh

2)设定cron配置文件

编辑配置文件:

$ sudo  crontab -e

我选择1,以使用 nano来编辑配置文件,文件内容为:

*/118  *  *   *   *     sh /opt/codesys/scripts/cron_reboot.sh > /opt/codesys/scripts/cron_reboot.log   2>&1

保存后退出。

3)重新启动 cron服务:

$ sudo  systemctl   restart  cron.service

可在log文件 /opt/codesys/scripts/cron_reboot.log 中查看最近一次codesyscontrol服务被重启的时间。


【界面上显示已运行时间】

在 Codesys 的 Visu 中可以显示当前运行时间:

(1)后台代码(循环执行)为:

//首个扫描周期,记录当前时间
IF isFirstCycle = TRUE THEN
    startTime := TIME();
    isFirstCycle := FALSE;
END_IF

//计算已启动Runtime运行的时间
GVL.tRunTime := TIME() - startTime;  

(2)画面中元件配置

在画面中添加“圆角矩形”,设置其text字串,注意其中的placeholder为: %t[HH:mm:ss]
设置text varible 为: GVL.tRunTime

界面上的显示效果,如图:

相关