将数据保留在共享内存中
某些产品不包括从控制器中的应用程序保留数据的自动连接(由于缺乏普遍有效的存储选项)。但是,运行时系统中存在一种通过共享内存 (SHM) 连接的现有机制,该机制可用于此目的,并具有相应的配置。
例如,可以通过以下方式使用 CODESYS Control SL 产品:
CODESYS Control for Linux
CODESYS Control for Linux ARM
CODESYS Control for Linux ARM64
CODESYS Control for Raspberry Pi
CODESYS Control for BeagleBone
版本说明:最低版本 CODESYS Control SL 产品为 V4.4.0.0 (CODESYS Control 版本 3.5.17.30)
基本上,“保留”是通过 SHM 通过以下设置启用的 /etc/CODESYSControl_User.cfg
在目标设备上:
[CmpApp] RetainType.Applications=InSHM
[CmpRetain] Retain.SHM.Size=0x1FFFF ; Total size of remanent memory in bytes Retain.SHM.Name=MyRetainMemory ; Optional (Default: "RetainMemory")
重新启动后,运行时系统会在下面创建一个配置名称为的共享内存文件 /dev/shm
.通过映射此文件,可以将内存重定向到任何非易失性文件,例如,通过以下命令:
sudo touch /dev/shm/MyRetainMemory sudo mount -o bind /var/opt/MyRetainMemory /dev/shm/MyRetainMemory
重要
根据 PLC 应用程序中设置的循环时间循环访问该文件。因此,不应将 SHM 文件重定向到基于闪存的文件系统中的文件,否则存在内存被破坏的风险。