无论是在 gvl 或者 pou 中都可以定义变量,默认情况下这些变量在系统重启后数据都会丢失。某些情况下我们希望变量值可以保持,系统重启后原数据也不丢失。可以在变量定义块中通过关键词 RETAINPERSISTENT 来实现。

注意 PERSISTENT 类型变量必须定义在单独的 Persistent Variables 类型 object 才能生效。而不是通常的 GVL object。

阅读全文



在下载到真实设备上和 simulation 模式时,调试时需要引用的路径是不一样的。

不管是哪种模式下,codesys 本身运行的一个容器环境根目录是如下:
2023-08-23T07:03:29.png

PlcLogic 文件夹是 POU 运行的根目录,所有 G 代码文件的索引都是以此目录为根目录的。在程序中定义路径地址的时候只需要写 POU 根目录的子路径即可。

阅读全文


打开一个别人的项目后编译,发现出现 The library "caa behaviour model, 3.5.19.0 (caa technical workgroup)" was created with the unknown compiler version "3.5.16.30" 的报错:
2023-08-15T00:04:07.png

但是我已经选择下载了缺失的库了,查询后发现是我的 codesys 版本过高,下载的对应库版本也高,而项目之前创建的时候可能是基于低版本库的,需要手动切换回对应版本的库即可。

library manager 下选择 placeholders 定位到报错的那个库:
2023-08-15T00:06:21.png

双击后显示版本菜单,选择对应低版本的选项:
2023-08-15T00:08:09.png

再次编译报错就会消失。


通过 ssh 可以远程登录服务器并执行相关操作,常用指令如下:

ssh user@address -p 22

执行命令后会提示输入用户密码才能最终进入。

如果在脚本中我们需要通过 ssh 登录用户并执行相关命令的话就有些麻烦了。

可以通过安装 sshpass 的方式在脚本中定义 ssh 密码,从而解决需求。

阅读全文