当前位置: 首页 > web >正文

TwinCAT数据类型,%MX,%MD这些特殊符号

在 TwinCAT(Beckhoff PLC 编程环境)中,%MX%MD 等符号是 IEC 61131-3 标准的地址表示法,用于直接访问 PLC 的物理 I/O 或内存区域。这些符号通常用于 变量声明 或 直接寻址,特别是在 TwinCAT 2 和 传统 PLC 编程 中较为常见。


1. 基本语法格式

TwinCAT 的地址表示法遵循 IEC 61131-3 标准,格式如下:

%<存储区><数据长度><地址>

其中:

  • %:固定前缀,表示直接地址访问。

  • <存储区>:指定内存区域(如 IQM 等)。

  • <数据长度>:指定数据类型大小(如 X=位,B=字节,W=字,D=双字)。

  • <地址>:具体地址编号(如 01100 等)。


2. 常见存储区(Memory Areas)

存储区说明示例
I输入区(Input)%IX0.0(输入位)
Q输出区(Output)%QW4(输出字)
M内存区(Memory,全局变量)%MD100(双字)
C计数器(Counter)%C1(计数器1)
T定时器(Timer)%T2(定时器2)

3. 数据长度(Data Length)

符号数据类型大小(位)示例
X位(Bit)1%MX0.0(内存位)
B字节(Byte)8%MB10(内存字节)
W字(Word)16%MW20(内存字)
D双字(DWord)32%MD100(内存双字)
L长字(LWord)64%ML200(内存长字)

4. 常见地址示例

(1) 位访问(Bit Addressing)

  • %IX0.0输入位 0.0(第 0 字节的第 0 位)。

  • %QX1.5输出位 1.5(第 1 字节的第 5 位)。

  • %MX100.7内存位 100.7(全局存储区)。

(2) 字节/字/双字访问

  • %IB0输入字节 0(8 位)。

  • %QW4输出字 4(16 位,地址 4~5)。

  • %MD100内存双字 100(32 位,地址 100~103)。


5. TwinCAT 2 vs TwinCAT 3

(1) TwinCAT 2

  • 广泛使用 %MX%MD 等直接地址访问。

  • 常用于 传统 PLC 编程 或 硬件 I/O 映射

(2) TwinCAT 3

  • 推荐使用 符号化变量(Symbolic Variables)代替直接地址。

  • 仍然支持 % 寻址,但更推荐 绑定到 I/O 设备(如 EL1809 输入模块)。


6. 实际应用示例

(1) 直接控制输出位

st

// TwinCAT 2 风格(直接地址)
%QX0.0 := TRUE;  // 强制输出位 0.0 为 ON

(2) 读取输入字

st

// TwinCAT 3 风格(推荐符号化变量)
VARnInputValue: INT;
END_VARnInputValue := %IW0;  // 读取输入字 0
 

(3) 内存区操作

// 使用 %MD 访问全局内存
%MD100 := 123456;  // 写入双字
diResult := %MD100 + 1000;  // 读取并计算

7. 注意事项

  1. 避免硬编码地址:在 TwinCAT 3 中,建议使用 符号化变量 或 I/O 映射,而不是直接 %MD

  2. 地址冲突:确保 %MX%MD 等地址不与其他变量重叠。

  3. 数据类型匹配%MW 是 16 位,%MD 是 32 位,赋值时需确保类型一致。


总结

符号含义示例
%IX0.0输入位 0.0%IX0.0 := TRUE;
%QW4输出字 4(16 位)%QW4 := 16#ABCD;
%MD100内存双字 100(32 位)%MD100 := 1234;

在 TwinCAT 编程中,% 地址表示法提供了一种底层访问方式,但在现代工程中更推荐使用 符号化变量 和 I/O 映射,以提高代码可读性和可维护性。

http://www.xdnf.cn/news/3131.html

相关文章:

  • 解决 RN Switch 组件在安卓端样式很丑的问题
  • MySQL 基本查询(一)
  • SNR8016语音模块详解(STM32)
  • Python中的内置函数
  • Django 自定义celery-beat调度器,查询自定义表的Cron表达式进行任务调度
  • K8S - GitOps 入门实战 - 自动发布与秒级回滚
  • 运维仙途 第1章 灵机突现探监控
  • 【文献速递】邻位连接技术(PLA)在细胞器相互作用中的应用
  • 汽车免拆诊断案例 | 2015款奔驰C200L车发动机起动延迟
  • AI预测3D新模型百十个定位预测+胆码预测+去和尾2025年4月30日第68弹
  • springboot集成Lucene详细使用
  • NVIDIA DRIVE AGX平台:引领智能驾驶安全新时代
  • 使用 Vue 开发 VS Code 插件前端页面(上)
  • 「Unity3D」TextMeshPro使用TMP_InputField实现,输入框高度自动扩展与收缩
  • AI技术在当代互联网行业的崛起与重要性!
  • MCP 服务器搭建【stdio 类型】实现上市公司年报查询总结,配合 Cherry Studio使用简单
  • Copilot for Excel 一键词云分析与情绪分析
  • 数据仓库与数据湖的对比分析
  • 计算机毕业设计--基于深度学习(U-Net与多尺度ViT)的模糊车牌图像清晰化复原算法设计与实现(含Github代码+Web端在线体验链接)
  • 第三方软件测试报告如何凭借独立公正与专业权威发挥关键作用?
  • 传输线的反射:
  • MS2111多点低压差分(M-LVDS)线路驱动器和接收器
  • 第13讲:图形尺寸与分辨率设置——适配论文版面,打造专业图稿!
  • AI正当时,国内AI HR领先厂商易路如何从“单点突破”到“全面融合”
  • The Open Group 参加雷丁博物馆的数字革命展览
  • JSON配置文件格式全解析与多语言实战指南
  • 软考高项(信息系统项目管理师)第 4 版全章节核心考点解析(第4版课程精华版)
  • 《冰雪传奇点卡版》:探索冰雪世界的传奇旅程!
  • 2025年KBS新算法 SCI1区TOP:长颖燕麦优化算法AOO,深度解析+性能实测
  • 虚假安全补丁攻击WooCommerce管理员以劫持网站