M指令,多位数怎么解读,比如M40600001

进口设备大量使用M指令,超过M99怎么使用?PLC写的如下:谁能给个解读的方向,阅读能力不足M指令,多位数怎么解读,比如M40600001

 OPN   "SysDbSysFgr"

      L     #KnNr                       //——————-

      JL    VBEB

      JU    BEB

      JU    KN1L                        //Sprungverteiler

      JU    KN2L

      JU    KN3L

      JU    KN4L                        //——————-

VBEB: JU    BEB

KN1L: L     P#18.0                      //Adresse 1.MFkt.-Wert Kanal 1 

      LAR1  

      L     DBB   15                    //M-膎derungssignale Kanal 1

      JU    LDMA

KN2L: L     P#98.0                      //Adresse 1.MFkt.-Wert Kanal 2 

      LAR1  

      L     DBB   95                    //M-膎derungssignale Kanal 2

      JU    LDMA

KN3L: L     P#456.0                     //Adresse 1.MFkt.-Wert Kanal 3

      LAR1  

      L     DBB  453                    //M-膎derungssignale Kanal 3

      JU    LDMA

KN4L: L     P#536.0                     //Adresse 1.MFkt.-Wert Kanal 4 

      LAR1  

      L     DBB  533                    //M-膎derungssignale Kanal 4

      JU    LDMA                        //———————-

BEB:  A     "SysZmEins"

      R     #Vorh

      BEC                               //———————-

LDMA: T     LB    16                    //Struktur M-Aenderungen

      L     0                           //M-Aenderung 1-5 ???

      ==I   

      R     #Vorh

      BEC   

      R     #Vorh

      L     0

      T     #W4_1

      AN    #MFktAend.M1                //—-> M Fkt. 1 <—-

      JC    M2AW

      L     DBD [AR1,P#0.0]             

      T     #MFktn

      A     #FktWertAus                 //Dekade 4-1 als Funktionswert ?

      JC    M1W9

      L     #MFktn                      //—————- 

      L     #M8_1                       // MFkt = M8_1 ?

      ==D   

      =     #Vorh

      R     #MFktAend.M1

      JC    ENDE

      JU    M2AW

M1W9: L     #M8_1                       //—————-

      L     10000                       //Ermitteln , ob die

      MOD                               //Dekaden 8-5 der programmierten

      T     #ModM8_1                    //M-Funktion mit der

      L     #M8_1                       //abgefragten M-Funktion M8_1

      L     #ModM8_1                    //黚ereinstimmen

      -D    

      T     #M8_1MinMod

      L     #MFktn                      //M8_1 /10000 == MFkt / 10000 ?

      L     10000

      MOD                               //nein => n鋍hste M-Funktion 

      T     #ModMFkt                    //ja   => Ausgabe W4_1

      L     #MFktn

      L     #ModMFkt

      -D    

      T     #MFktMinMod

      L     #M8_1MinMod

      <>D   

      JC    M2AW                        //——————-

      =     #Vorh                       //Ausgabe W4_1:

      R     #MFktAend.M1

      L     #ModMFkt                    //Modulo(MFkt / 10000) -> W4_1

      DTB   

      T     #W4_1

      JU    ENDE                        //——————-

M2AW: AN    #MFktAend.M2                //—-> M Fkt. 2 <—-

      JC    M3AW

      L     DBD [AR1,P#6.0]

      T     #MFktn

      A     #FktWertAus                 //Dekade 4-1 als Funktionswert ?

      JC    M2W9

      L     #MFktn                      //—————- 

      L     #M8_1                       // MFkt = M8_1 ?

      ==D   

      =     #Vorh

      R     #MFktAend.M2

      JC    ENDE

      JU    M3AW

M2W9: L     #M8_1                       //—————-

      L     10000                       //Ermitteln , ob die

      MOD                               //Dekaden 8-5 der programmierten

      T     #ModM8_1                    //M-Funktion mit der

      L     #M8_1                       //abgefragten M-Funktion M8_1

      L     #ModM8_1                    //黚ereinstimmen

      -D    

      T     #M8_1MinMod

      L     #MFktn                      //M8_1 /10000 == MFkt / 10000 ?

      L     10000

      MOD                               //nein => n鋍hste M-Funktion 

      T     #ModMFkt                    //ja   => Ausgabe W4_1

      L     #MFktn

      L     #ModMFkt

      -D    

      T     #MFktMinMod

      L     #M8_1MinMod

      <>D   

      JC    M3AW                        //——————-

      =     #Vorh                       //Ausgabe W4_1:

      R     #MFktAend.M2

      L     #ModMFkt                    //Modulo(MFkt / 10000) -> W4_1

      DTB   

      T     #W4_1

      JU    ENDE                        //——————-

M3AW: AN    #MFktAend.M3                //—-> M Fkt. 3 <—-

      JC    M4AW

      A     #FktWertAus                 //Dekade 4-1 als Funktionswert ?

      L     DBD [AR1,P#12.0]

      T     #MFktn

      JC    M3W9

      L     #MFktn                      //—————- 

      L     #M8_1                       // MFkt = M8_1 ?

      ==D   

      =     #Vorh

      R     #MFktAend.M3

      JC    ENDE

      JU    M4AW

M3W9: L     #M8_1                       //—————-

      L     10000                       //Ermitteln , ob die

      MOD                               //Dekaden 8-5 der programmierten

      T     #ModM8_1                    //M-Funktion mit der

      L     #M8_1                       //abgefragten M-Funktion M8_1

      L     #ModM8_1                    //黚ereinstimmen

      -D    

      T     #M8_1MinMod

      L     #MFktn                      //M8_1 /10000 == MFkt / 10000 ?

      L     10000

      MOD                               //nein => n鋍hste M-Funktion 

      T     #ModMFkt                    //ja   => Ausgabe W4_1

      L     #MFktn

      L     #ModMFkt

      -D    

      T     #MFktMinMod

      L     #M8_1MinMod

      <>D   

      JC    M4AW                        //——————-

      =     #Vorh                       //Ausgabe W4_1:

      R     #MFktAend.M3

      L     #ModMFkt                    //Modulo(MFkt / 10000) -> W4_1

      DTB   

      T     #W4_1

      JU    ENDE                        //——————-

M4AW: AN    #MFktAend.M4                //—-> M Fkt. 4 <—-

      JC    M5AW

      A     #FktWertAus                 //Dekade 4-1 als Funktionswert ?

      L     DBD [AR1,P#18.0]

      T     #MFktn

      JC    M4W9

      L     #MFktn                      //—————- 

      L     #M8_1                       // MFkt = M8_1 ?

      ==D   

      =     #Vorh

      R     #MFktAend.M4

      JC    ENDE

      JU    M5AW

M4W9: L     #M8_1                       //—————-

      L     10000                       //Ermitteln , ob die

      MOD                               //Dekaden 8-5 der programmierten

      T     #ModM8_1                    //M-Funktion mit der

      L     #M8_1                       //abgefragten M-Funktion M8_1

      L     #ModM8_1                    //黚ereinstimmen

      -D    

      T     #M8_1MinMod

      L     #MFktn                      //M8_1 /10000 == MFkt / 10000 ?

      L     10000

      MOD                               //nein => n鋍hste M-Funktion 

……..

………

版主推荐答案

掌握寻址方式,指针的指向,画流程图

间接寻址.JPG

查看完整帖子:
http://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1617657&bid=20

提问者对于答案的评价:

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc296027.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年10月31日
下一篇 2020年10月31日

相关推荐

  • nc程序跳转

    我在编程中加入一段跳转程序,IF $A_IN[10]==1 GOTOF AA01。但是程序走到这步时没有跳转,仍然执行下一步程序,$A_IN[10]对…

    SINUMERIK 2019年6月11日
  • 840D 轴安全

    如何屏蔽主轴不旋转,手动下轴可以移动 问题补充:手动模式下,移动各轴需要主轴处在运转状态 最佳答案 可以使用每分钟进给指令g94即可实现。 提问者对于答案的评价:最终在参数界面找到…

    SINUMERIK 2020年10月31日
  • 808D ADVANCED

    谁有《SINUMERIK 808D ADVANCED 基于 OPC Server的联网应用方法》这个文件,请发一份给我,万分感谢,…

    SINUMERIK 2020年10月31日
  • 802dsl的20004报警

    一台802dsl的数磨,回零时Y轴20004报警,在Yz双轴模块上RDY灯不亮,Z轴可以回零,电源模块(SLM)指示灯正常,输出537V。Y轴上的X520有时红灯。求高手指教! 问…

    SINUMERIK 2020年10月31日
  • 828D系统,由PLC选择NC加工程序的问题

    以前在802DSL系统中有一个功能是由PLC来选择哪一个加工程序的,现在在828系统调试手册上没有见到这个功能,请问828系统有这个功能吗?有的话具体是哪些接口信号?谢谢! 问题补…

    2017年7月30日
  • 利用FB2读取NC变量时,如何对生成的DB块源文件进行理解

    以下为用FB2读取主轴速度实际值的源文件,请解释一下STRUCT C1_SSP_actSpeed4_2:   STRUCT &nb…

    2017年5月29日
  • 802D SL 启动后没有报警,但是点动哪个轴也不动,提示没有使能

    没有报警,提示没有使能,我看了X20的,1.2端子,使能信号正常,2号端子对应NC开关3,1号端子对应来自驱动的使能信号,给西门子服务打电话,告诉我说来自NC的开关要使1有效,该如…

    2017年10月29日
  • 如何修改屏幕保护的等待时间

    不知道有没有办法切换到桌面,然后就和PC一样设置? 问题补充:我找了一下以前的帖子 发现有3种方法 不过还有一些疑问 1  &nb…

    SINUMERIK 2018年12月14日
  • 840DSL 报警文本定义清处

    我在编840DSL报警文本时700000到700032是红色的文字,必须的按复位键才能消除,700033到700064是黑色字条件消除后就消除了,我看简调里EM是错误,OM是信息,…

    SINUMERIK 2017年6月24日
  • 828D Toolbox 软件工具包

    我是初学者,不知道828D Toolbox软件工具包哪里可以免费获得,如不能免费获得,需要订货的话,西门子订货号是多少?价格是多少?望各位技术大咖们施予援手 最佳答案 T…

    SINUMERIK 2021年7月5日