![图片[1]-对着易工课的图,搞懂840Dsl M代码到PLC的解码逻辑-机械资源网](https://www.ug8.uk/wp-content/uploads/2025/09/wxsync-2025-09-5bd6175680d697a9b549e1661264a579.png)
M 代码的标准结构:M 扩展地址 = 值
带参数的 M 代码遵循固定格式,核心由 4 部分组成:
- 标识位 “M”
:NC 识别辅助功能的专属标识,用于区分 G 代码、F 代码等其他指令; - 扩展地址
:M 代码的 “索引编号”,决定数据在 NC/PLC 接口数据块中的存储位置,例如 “M20=300” 中的 “20”; - 分隔符 “=”
:明确区分扩展地址与设定值,避免数据混淆; - 设定值
:M 代码需传递给 PLC 的具体参数,例如 “M20=300” 中的 “300”(可代表压力、转速、行程等)。 -
“无扩展地址的 M 代码”(如 M500)的特殊处理: 此类 M 代码默认扩展地址为 “0”,仅传递设定值(如 M500 的 “500”),设定值按默认地址规则存储。
扩展地址与设定值的具体地址映射
以 “通道 1 执行 M20=300” 为例,手册明确数据在 DB21 中的存储位置:
-
扩展地址 “20”:存储在DB21.DBW68(DBW 为 “数据字” 类型,适配整数型扩展地址); -
设定值 “300”:存储在DB21.DBD70(DBD 为 “双字” 类型,适配更大范围的设定值);
对于无扩展地址的 M 代码(如通道 1 执行 M500):默认扩展地址 “0” 无需单独存储,设定值 “500” 直接存储在DB21.DBD70(默认首地址的设定值存储位)。
若一行 NC 程序包含多个 M 代码
(如 “M20=300 M21=400 M22=500”),
数据会按 “从左到右” 顺序占用连续地址:
-
第一个 M 代码(M20=300): 扩展地址 20→DB21.DBW68,设定值 300→DB21.DBD70; DB21.DBX58.0 会有一个脉冲触发 -
第二个 M 代码(M21=400): 扩展地址 21→DB21.DBW74, 设定值 400→DB21.DBD76; DB21.DBX58.1 会有一个脉冲触发 -
第三个 M 代码(M22=500): 扩展地址 22→DB21.DBW80, 设定值 500→DB21.DBD82; DB21.DBX58.2 会有一个脉冲触发 -
每个 M 代码固定占用 “1 个 DBW(扩展地址)+1 个 DBD(设定值)” 的空间,确保数据不重叠。
如果想系统学 840Dsl 调试,强烈推荐去学下面两套课
他不仅会带着你对着这张图理流程,还会结合这本功能手册找具体数据块、查信号位,把 “为什么这么传”“卡壳了怎么查” 讲得透透的,比自己瞎啃手册效率高太多,能帮你少走很多我之前踩过的坑!
© 版权声明
教程收集于网络,如有侵权请务必联系站长删除
THE END
暂无评论内容