基于西门子840D sl系统的静态M代码解译

2022-01-01 06:30邵毅
金属加工(冷加工) 2022年12期
关键词:西门子静态代码

邵毅

沈阳机床(集团)有限责任公司 辽宁沈阳 110142

1 序言

随着数控机床发展的潮流,复合机床成为热门产品,由于更多的不同加工过程复合在一台机床上,因此需要大量的辅助功能M代码来控制机床动作,简化外部开关,提高机床自动化程度。西门子840D sl系统中只提供了M0~M99这100个动态M功能,可以直接对应PLC接口信号。如果需要M100以后的静态M功能时,需要在PLC内进行破解编译,才能形成PLC对应的接口[1-3]。这就造成每次增加一个静态M功能时,都需要在PLC内部增加相应程序,不仅重复编制的程序过多,而且容易出现错误。因此有必要编制一个静态M功能的解译程序功能块,来减少编制PLC程序的工作量,使程序变得模块化,从而提高准确性。

2 静态M代码解译

辅助功能即M代码,是用地址M和后面的数值组成的指令,实现不同的功能。西门子系统提供了静态M功能从NCK到PLC的接口地址,具体见表1,可以对应单段程序中5组不同的M功能。

表1 静态M功能从NCK到PLC的接口地址

所谓静态M代码解译,就是当在单段程序中执行5组静态M代码时,第1组静态M代码对应的PLC地址DB21.DBX 58.0为1,此时DB21.DBW68内存储的是M代码的扩展地址,DB21.DBD70内存储的是M代码后面的数值,根据这3个地址内数值不同的变化在PLC内对应的辅助功能进行编程;第2组静态M代码对应的PLC地址DB21.DBX 58.1为1,DB21.DBW74与DB21.DBD76存储着相应M代码的扩展地址和后面的数值,以此类推。由此可以看出,只有将静态M功能接口地址通过PLC程序处理后,才能得到一一对应的PLC地址,编程量是非常大的。

3 编写解译程序块

使用PLC编程软件STEP7,建立一个用于存储M功能解译地址的DB块,DB块的容量为900个字节,解译地址是DBX0.0~DBX112.3,用于存储M100~M999共计900个M功能。静态M代码不像动态M代码那样,对应的PLC地址只在一个PLC的扫描周期内为1,而是一直为1,直到下一个静态M代码执行后,前一个才会变为0。因此在解译程序块中首先要对存储DB块做清0处理。在对静态M功能接口地址存储DB块清0时,需要用双字指针来确定解译后的地址,双字指针用于存储器间接寻址,具有32bit的结构:0000 0000 0000 0BBB BBBB BBBB BBBB BXXX,其中0~2bit(3个X)的数值表示被寻址的位地址,3~18bit(16个B)的数值表示被寻址的字节地址。通过双字指针确定具体地址byte.Bit,程序中DIB是将所对应的字节地址清零,因此要进行左移3位的操作。具体程序如下。

对单段程序中执行的静态M代码对应的PLC地址DB21.DBX58.0~DBX58.4循环5次进行检测,当地址位由0变为1时,在对应的DB21.DBD70~DBD92读取M后面的数值,经计算后将对应解译地址DBX0.0~DBX112.3置1,完成解译,具体程序如下。

4 解译程序块的使用

调用解译程序块并赋予用于存储M功能解译DB块的具体地址,例如DB200,那么当NC程序段中执行M100时,对应的PLC地址DB200.DBX0.0在PLC一个扫描周期内为1,PLC程序内就可以直接利用DB200.DBX0.0的上升沿进行实现具体功能的编程工作。这里需要注意的是此解译程序块只是第一通道并且M代码的扩展地址为1的静态M代码,如果需要使用更多通道或者更多M代码扩展地址,可以在本功能块的基础上改写。

5 结束语

在了解西门子840D sl系统PLC程序对静态M代码的解译原理后,编写出了M100~M999的解译程序块,解译结果准确,可以实现在西门子NC程序的单程序段上编制、执行多组M功能,增强了PLC程序的结构化、模块化和通用性,同时大幅减少了编制PLC程序的工作量。

猜你喜欢
西门子静态代码
最新进展!中老铁路开始静态验收
西门子(中国)有限公司
静态随机存储器在轨自检算法
西门子(中国)有限公司
创世代码
创世代码
创世代码
创世代码
浅谈西门子LOGO在空调新风机控制系统中的应用
油罐车静态侧倾稳定角的多体仿真计算