对着易工课的图,搞懂840Dsl M代码到PLC的解码逻辑

温馨提示: 本文最后更新于 2025-09-11 09:57:49,下载链接具有时效性,若已失效,请在下方留言提示站长
图片[1]-对着易工课的图,搞懂840Dsl M代码到PLC的解码逻辑-机械资源网
如果你有一行NC编程 这么写 
N100 M10=120 M300 M200
当NC程序执行这行代码的时候,PLC会如何变化呢?
在研究之前,我们先来看下M辅助功能的结构

M 代码的标准结构:M 扩展地址 = 值

带参数的 M 代码遵循固定格式,核心由 4 部分组成:

  1. 标识位 “M”
    :NC 识别辅助功能的专属标识,用于区分 G 代码、F 代码等其他指令;
  2. 扩展地址
    :M 代码的 “索引编号”,决定数据在 NC/PLC 接口数据块中的存储位置,例如 “M20=300” 中的 “20”;
  3. 分隔符 “=”
    :明确区分扩展地址与设定值,避免数据混淆;
  4. 设定值
    :M 代码需传递给 PLC 的具体参数,例如 “M20=300” 中的 “300”(可代表压力、转速、行程等)。
  5. “无扩展地址的 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(设定值)” 的空间,确保数据不重叠。
以此类推,每行M代码最多可以有5个M辅助功能。参考上图
具体这些数值有没有限制,我们下一个文章给大家解释

如果想系统学 840Dsl 调试,强烈推荐去学下面两套课

他不仅会带着你对着这张图理流程,还会结合这本功能手册找具体数据块、查信号位,把 “为什么这么传”“卡壳了怎么查” 讲得透透的,比自己瞎啃手册效率高太多,能帮你少走很多我之前踩过的坑!

西门子数控系统840Dsl安全集成调整与维护系统学习课程

西门子数控系统840dsl_PLC基础训练营

© 版权声明
THE END
喜欢就支持一下吧
分享
评论 抢沙发

请登录后发表评论

    暂无评论内容