【破解】设置 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
界面上的显示效果,如图: