当前位置:技术 >> 技术前沿 >> 数控编程 >> 正文

siemens 300/400编程技巧3则

2007-05-21 16:23:38  作者:佚名  来源:青岛机电网  浏览次数:59  文字大小:【】【】【

数据块拷贝
FUNCTION FC 100 : VOID
TITLE =
//DB BLOCK COPY
AUTHOR : AXG
NAME : DBBTODBB
VERSION : 0.1


VAR_INPUT
  SOU_DB : INT ; //SOURCE DB NUMBER
  LENG : INT ; //HOW MANY TO COPY
  DES_DB : INT ; //DESTINATION DB NUMBER
END_VAR
VAR_TEMP
  SOURCE : ANY ; 
  DEST : ANY ; 
END_VAR
BEGIN
NETWORK
TITLE =

      LAR1  P##SOURCE; // Load the start address of the ANY pointers in AR1.
      L     B#16#10; // Load the syntax ID and
      T     LB [AR1,P#0.0]; // transfer it to the ANY pointer. 
      L     B#16#4; // Load data type WORD and
      T     LB [AR1,P#1.0]; // transfer it to the ANY pointer.
      L     #LENG; // Load HOW MANY WORDS and
      T     LW [AR1,P#2.0]; // transfer them to the ANY pointer
      L     #SOU_DB; // Source is DB[?], DBB0.0
      T     LW [AR1,P#4.0]; // 
      L     P#DBX 0.0; // 
      T     LD [AR1,P#6.0]; // 
      LAR1  P##DEST; //Load the DESTINATION address of the ANY pointer in AR1. 
      L     B#16#10; //Load the syntax ID and 
      T     LB [AR1,P#0.0]; //transfer it to the ANY pointer. 
      L     B#16#4; //Load data type WORD and 
      T     LB [AR1,P#1.0]; //transfer it to the ANY pointer. 
      L     #LENG; //Load HOW MANY WORDS and 
      T     LW [AR1,P#2.0]; //transfer them to the ANY pointer. 
      L     #DES_DB; //Destination is DB{?}, DBB0.0 
      T     LW [AR1,P#4.0]; 
      L     P#DBX 0.0; // 
      T     LD [AR1,P#6.0]; // 
      CALL "BLKMOV" (//Call the block move system function 
           SRCBLK                   := #SOURCE,// 
           RET_VAL                  := MW   210,//Evaluate the BR bit and MW 210
           DSTBLK                   := #DEST);// 


END_FUNCTION


使用说明:可直接调用,#SOURCE---源数据块号
                      #DEST------目标数据块号
                       #LENG----要拷贝数据的长度

[color=#FF0000]S7 300400 的一些功能和技巧2[/color]

单键翻转
FUNCTION FC 11 : VOID
TITLE =
//
AUTHOR : AXG
FAMILY : ESU
NAME : SDZF
VERSION : 0.0

BEGIN
NETWORK
TITLE =

      A     M     0.0; 
      A     M     0.1; 
      =     M     58.0; 
NETWORK
TITLE =

      A     M     58.0; 
      AN    M     58.1; 
      =     M     58.2; 
NETWORK
TITLE =

      A     M     58.2; 
      S     M     58.1; 
      ON    M     58.0; 
      ON    M     0.0; 
      R     M     58.1; 
      NOP   0; 
NETWORK
TITLE =

      A     M     58.2; 
      A     M     58.4; 
      =     M     58.3; 
NETWORK
TITLE =

      A     M     58.2; 
      AN    M     58.3; 
      AN    M     58.4; 
      S     M     58.4; 
      O     M     58.3; 
      ON    M     0.0; 
      R     M     58.4; 
      NOP   0; 


END_FUNCTION


使用说明:M0.0----使能
          M0.1----单键使M58.4翻转 

[color=#FF0000]S7 300400 的一些功能和技巧3[/color]

循环读模拟量入DB块
      L     #DB_NO
      T     LW     0
      OPN   DB [LW 0]
      L     #PIW_ADDR
      SLD   3
      T     LD     4
      L     #DBD_ADDR
      SLD   3
      T     LD     8
      L     #CH_LEN
NEXT: T     LW     0
      L     LD     4
      LAR1  
      L     PIW [AR1,P#0.0]
      T     LW     2

     { CALL  "Read Analog Value 464-2"
       IN     :=LW2
       HI_LIM :=5.000000e+002
       LO_LIM :=-1.000000e+001      将模拟量转换成工程量
       BIPOLAR:=TRUE
       RET_VAL:=LW10
       OUT    :=LD12   }

      L     LD     8
      LAR1  
      L     LD     2
      T     DBD [AR1,P#0.0]
      L     LD     4
      +     L#16
      T     LD     4
      L     LD     8
      +     L#32
      T     LD     8
      L     LW     0
      LOOP  NEXT


PIW_Addr :模拟块通道起始地址
CHI_LEN :要读入的 通道数
DB_NO :存储数据块
DBW_Addr :存储在数据块中的字地址

责任编辑:

[青岛机电网版权申明:除部分特别声明不要转载,或者授权我站独家播发的文章外,大家可以自由转载我站点的原创文章,但原作者和来自我站的链接必须保留(非我站原创的,按照原来自一节,自行链接)。文章版权归我站和作者共有。
转载要求:转载之图片、文件,链接请不要盗链到本站,且不准打上各自站点的水印,亦不能抹去我站点水印。
特别注意:本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有,文章若有侵犯作者版权,请与我们联系,我们将立即删除修改。]