Skip to main content

将数据保留在共享内存中

某些产品不包括从控制器中的应用程序保留数据的自动连接(由于缺乏普遍有效的存储选项)。但是,运行时系统中存在一种通过共享内存 (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 文件重定向到基于闪存的文件系统中的文件,否则存在内存被破坏的风险。