能否通过复制文件将Codesys项目部署至Berghoff PLC控制器?
前提说明
已知通过CODESYS IDE或Automation Server可正常部署项目,但需求是不运行Windows端IDE、不上传项目到Automation Server,纯手动完成部署;且已确认/etc/init.d/codesyscontrol脚本不支持直接加载新应用。
操作步骤
导出编译后的应用包
先在本地CODESYS IDE里(仅用于导出,无需参与后续部署)打开目标项目,通过菜单栏Project->Export->Application as File...导出.app格式文件——这是和目标设备运行时兼容的编译后可执行包,务必选择和设备匹配的运行时版本,避免兼容性问题。传输文件到目标设备
用SCP、SFTP或者USB拷贝的方式,把.app文件传到设备的指定目录,比如/opt/codesys/projects/(路径可根据设备实际情况调整,确保当前用户有读写权限)。修改运行时配置文件
找到CODESYS运行时的配置文件,常见路径是/etc/codesyscontrol.cfg或/opt/codesys/config/codesyscontrol.cfg(不同厂商设备可能有差异)。打开文件后,找到Application配置项,把原有路径替换成刚上传的.app文件路径,示例:Application=/opt/codesys/projects/your_target_project.app如果配置文件里没有这个项,直接添加一行即可。
重启CODESYS运行时服务
虽然/etc/init.d/codesyscontrol不支持直接加载新应用,但重启服务可以让配置生效:sudo /etc/init.d/codesyscontrol stop sudo /etc/init.d/codesyscontrol start要是设备用
systemd管理服务,就用这组命令:sudo systemctl stop codesyscontrol.service sudo systemctl start codesyscontrol.service验证部署状态
查看运行时日志确认应用是否正常加载,日志一般在/var/log/codesyscontrol.log:cat /var/log/codesyscontrol.log | grep "Application"部分设备自带Web管理界面的话,也可以在界面里查看应用运行状态。
内容的提问来源于stack exchange,提问作者Sameer Khalid

