工业 HMI 变量控制中枢
采用单例模式设计的全局变量控制接口,提供跨线程安全的变量存取服务
通过统一入口 vm 实现全工程无障碍访问
无需实例化操作,避免重复对象创建
支持跨 UI 组件、业务逻辑层、设备驱动层等多模块调用
int num;
vm->getInt("整形变量",num);
float fnum;
vm->getFloat("浮点型变量", fnum);
int64_t lnum;
vm->getLong("长整型变量", lnum);
string str;
vm->getChar("字符串变量", str);
底层采用原子操作与读写锁双重保障
支持最高每秒执行次数: 1872550+次写入(模拟器)204722(HMI)
自动处理多线程环境下的资源竞争问题
// 典型应用示例
vm->setInt("显示数据", numIterations); // 写入设备变量
float temp;
vm->getFloat("Env.Temperature", temp);// 读取环境参数
int status
vm->getInt("System.Alert",status); // 获取状态量
应用场景
UI 动态更新:自动同步设备变量到 HMI 显示
多线程同步:实现 PLC 通讯线程与 UI 渲染线程的无缝数据交互
快速调试:通过临时变量注入进行设备模拟测试
注意事项
变量命名需符合设备组.功能单元.参数名规范
string message;
getRuntime()->getIVarMgr()->setChar("显示变量", message);
int value;
getRuntime()->getIVarMgr()->setInt("整形变量", value);