西门子程序解释 点击:1411 | 回复:13



ankefu

    
  • 精华:0帖
  • 求助:5帖
  • 帖子:8帖 | 144回
  • 年度积分:518
  • 历史总积分:2063
  • 注册:2004年7月17日
发表于:2020-03-15 09:01:55
楼主
求助帖50分-未结帖

请求帮忙看一段西门子语句表程序


FUNCTION "cu_infeed" : VOID
TITLE =cu_infeed
VERSION : 0.1


VAR_INPUT
  with_infeed : BOOL ; 
  cu_udt_re : POINTER ; 
  cu_udt_se : POINTER ; 
  cu_pew_adr : INT ; 
  inf_udt_re : POINTER ; 
  inf_udt_se : POINTER ; 
  inf_pew_adr : INT ; 
  quitt : BOOL ; 
  sec : BOOL ; 
  infeed_on : BOOL ; 
  CU_DI_DO_8 : BOOL ; 
END_VAR
VAR_TEMP
  pew_paw_pointer : ANY ; 
  TEMP1 : BYTE ; 
  TEMP_1 : BYTE ; 
  TEMP2 : BYTE ; 
  TEMP0 : BYTE ; 
  DB_NR : INT ; 
  alarm_bit : BOOL ; 
  warn_bit : BOOL ; 
  alarm_byte : BYTE ; 
  warn_byte : BYTE ; 
  Temp_addr : WORD ; 
  Ret1 : INT ; 
END_VAR
BEGIN
NETWORK
TITLE =

      L     P##cu_udt_re;
      LAR1  ;
      L     W [AR1,P#0.0];
      T     #DB_NR;
      L     W#16#1002;
      T     LW     0;
      L     8;
      T     LW     2;
      L     #DB_NR;
      T     LW     4;
      L     D [AR1,P#2.0];
      T     LD     6;
      L     #cu_pew_adr;
      T     #Temp_addr;
      CALL "DPRD_DAT" (
           LADDR                    := #Temp_addr,
           RET_VAL                  := #Ret1,
           RECORD                   := #pew_paw_pointer);
      L     P##cu_udt_se;
      LAR1  ;
      L     W [AR1,P#0.0];
      T     #DB_NR;
      L     W#16#1002;
      T     LW     0;
      L     8;
      T     LW     2;
      L     #DB_NR;
      T     LW     4;
      L     D [AR1,P#2.0];
      T     LD     6;
      CALL "DPWR_DAT" (
           LADDR                    := #Temp_addr,
           RECORD                   := #pew_paw_pointer,
           RET_VAL                  := #Ret1);
NETWORK
TITLE =

      L     P##cu_udt_re;
      LAR1  ;
      L     W [AR1,P#0.0];
      T     #DB_NR;
      OPN   DB [#DB_NR];
      L     D [AR1,P#2.0];
      LAR1  ;
      A     DBX [AR1,P#1.3];
      =     #alarm_bit;
      A     DBX [AR1,P#1.7];
      =     #warn_bit;
      L     DBB [AR1,P#8.0];
      T     #alarm_byte;
      L     DBB [AR1,P#9.0];
      T     #warn_byte;
      AN    #alarm_bit;
      JC    a012;
      AN    #sec;
      JC    a011;
      L     #alarm_byte;
      L     3;
      >I    ;
      JC    a011;
      L     #alarm_byte;
      L     1;
      +I    ;
      T     #alarm_byte;
      JU    a011;
a012: NOP   0;
      L     0;
      T     #alarm_byte;
a011: NOP   0;
      AN    #warn_bit;
      JC    a022;
      AN    #sec;
      JC    a021;
      L     #warn_byte;
      L     3;
      >I    ;
      JC    a021;
      L     #warn_byte;
      L     1;
      +I    ;
      T     #warn_byte;
      JU    a021;
a022: NOP   0;
      L     0;
      T     #warn_byte;
a021: NOP   0;
      A     #alarm_bit;
      A(    ;
      L     #alarm_byte;
      L     3;
      >=I   ;
      )     ;
      =     #alarm_bit;
      A     #warn_bit;
      A(    ;
      L     #warn_byte;
      L     3;
      >=I   ;
      )     ;
      =     #warn_bit;
      L     P##cu_udt_re;
      LAR1  ;
      L     W [AR1,P#0.0];
      T     #DB_NR;
      OPN   DB [#DB_NR];
      L     D [AR1,P#2.0];
      LAR1  ;
      L     #alarm_byte;
      T     DBB [AR1,P#8.0];
      L     #warn_byte;
      T     DBB [AR1,P#9.0];
      L     P##cu_udt_se;
      LAR1  ;
      L     W [AR1,P#0.0];
      T     #DB_NR;
      OPN   DB [#DB_NR];
      L     D [AR1,P#2.0];
      LAR1  ;
      A     #alarm_bit;
      =     DBX [AR1,P#9.0];
      A     #warn_bit;
      =     DBX [AR1,P#9.1];
      A     "RLO-high";
      =     DBX [AR1,P#0.2];
      A     #CU_DI_DO_8;
      =     DBX [AR1,P#1.2];
      A     #quitt;
      =     DBX [AR1,P#1.7];
      A     #CU_DI_DO_8;
      =     DBX [AR1,P#3.0];
NETWORK
TITLE =infeed

      AN    #with_infeed;
      JC    end1;
      L     P##inf_udt_re;
      LAR1  ;
      L     W [AR1,P#0.0];
      T     #DB_NR;
      L     W#16#1002;
      T     LW     0;
      L     8;
      T     LW     2;
      L     #DB_NR;
      T     LW     4;
      L     D [AR1,P#2.0];
      T     LD     6;
      L     #inf_pew_adr;
      T     #Temp_addr;
      CALL "DPRD_DAT" (
           LADDR                    := #Temp_addr,
           RET_VAL                  := #Ret1,
           RECORD                   := #pew_paw_pointer);
      L     P##inf_udt_se;
      LAR1  ;
      L     W [AR1,P#0.0];
      T     #DB_NR;
      L     W#16#1002;
      T     LW     0;
      L     8;
      T     LW     2;
      L     #DB_NR;
      T     LW     4;
      L     D [AR1,P#2.0];
      T     LD     6;
      CALL "DPWR_DAT" (
           LADDR                    := #Temp_addr,
           RECORD                   := #pew_paw_pointer,
           RET_VAL                  := #Ret1);
end1: NOP   0;
NETWORK
TITLE =infeed

      AN    #with_infeed;
      JC    nend;
      L     P##inf_udt_re;
      LAR1  ;
      L     W [AR1,P#0.0];
      T     #DB_NR;
      OPN   DB [#DB_NR];
      L     D [AR1,P#2.0];
      LAR1  ;
      A     DBX [AR1,P#1.3];
      =     #alarm_bit;
      A     DBX [AR1,P#1.7];
      =     #warn_bit;
      L     DBB [AR1,P#8.0];
      T     #alarm_byte;
      L     DBB [AR1,P#9.0];
      T     #warn_byte;
      AN    #alarm_bit;
      JC    a112;
      AN    #sec;
      JC    a111;
      L     #alarm_byte;
      L     3;
      >I    ;
      JC    a111;
      L     #alarm_byte;
      L     1;
      +I    ;
      T     #alarm_byte;
      JU    a111;
a112: NOP   0;
      L     0;
      T     #alarm_byte;
a111: NOP   0;
      AN    #warn_bit;
      JC    a122;
      AN    #sec;
      JC    a121;
      L     #warn_byte;
      L     3;
      >I    ;
      JC    a121;
      L     #warn_byte;
      L     1;
      +I    ;
      T     #warn_byte;
      JU    a121;
a122: NOP   0;
      L     0;
      T     #warn_byte;
a121: NOP   0;
      A     #alarm_bit;
      A(    ;
      L     #alarm_byte;
      L     3;
      >=I   ;
      )     ;
      =     #alarm_bit;
      A     #warn_bit;
      A(    ;
      L     #warn_byte;
      L     3;
      >=I   ;
      )     ;
      =     #warn_bit;
      L     P##inf_udt_re;
      LAR1  ;
      L     W [AR1,P#0.0];
      T     #DB_NR;
      OPN   DB [#DB_NR];
      L     D [AR1,P#2.0];
      LAR1  ;
      L     #alarm_byte;
      T     DBB [AR1,P#8.0];
      L     #warn_byte;
      T     DBB [AR1,P#9.0];
      L     P##inf_udt_se;
      LAR1  ;
      L     W [AR1,P#0.0];
      T     #DB_NR;
      OPN   DB [#DB_NR];
      L     D [AR1,P#2.0];
      LAR1  ;
      A     #alarm_bit;
      =     DBX [AR1,P#9.0];
      A     #warn_bit;
      =     DBX [AR1,P#9.1];
      A     "RLO-high";
      =     DBX [AR1,P#0.2];
      =     DBX [AR1,P#1.1];
      A     #infeed_on;
      =     DBX [AR1,P#1.0];
      A     #quitt;
      =     DBX [AR1,P#1.7];
nend: NOP   0;
END_FUNCTION


1分不嫌少!


楼主最近还看过



HOJINLING

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 195回
  • 年度积分:0
  • 历史总积分:511
  • 注册:2010年11月02日
发表于:2020-03-16 09:09:45
1楼

最好来个截图,里面有太多的东西了


Aurora0421

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 13回
  • 年度积分:0
  • 历史总积分:120
  • 注册:2020年3月16日
发表于:2020-03-16 11:38:23
2楼

哈哈哈,看不懂啊

蓝天小子

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 546回
  • 年度积分:58
  • 历史总积分:835
  • 注册:2018年8月07日
发表于:2020-03-16 16:29:37
3楼

你这是在一个网络中的?你这又有块,又没有网络分界,不好看懂,你还是来程序截图,甚至直接添加个程序附件吧,要不然很难。

晓7812

  • 精华:0帖
  • 求助:1帖
  • 帖子:3帖 | 20回
  • 年度积分:0
  • 历史总积分:145
  • 注册:2007年4月05日
发表于:2020-03-18 08:22:59
4楼

估计有耐心看完的不多


栀子花开宋

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 353回
  • 年度积分:0
  • 历史总积分:256
  • 注册:2005年6月03日
发表于:2020-03-18 09:50:04
5楼

看一下,,学习学习

请叫我王老湿

  • [版主]
  • 精华:0帖
  • 求助:0帖
  • 帖子:622帖 | 8548回
  • 年度积分:24
  • 历史总积分:335295
  • 注册:2011年4月25日
发表于:2020-03-18 10:00:15
6楼

看这个没多大意义,每一步都能看懂,但是没有注释,不知道每个地址是干嘛用的,没有太大意义去看

ankefu

  • 精华:0帖
  • 求助:5帖
  • 帖子:8帖 | 144回
  • 年度积分:518
  • 历史总积分:2063
  • 注册:2004年7月17日
发表于:2020-03-19 08:16:19
7楼

这是西门子一段语句表程序,是一个功能函数,被另外一个块赋值调用,这个块里面基本都是形式参数,这段程序里面调用的是系统功能SFC14和SFC15,里面有一段不是太明白,画横线部分\

 L     P##cu_udt_re;
      LAR1  ;
      L     W [AR1,P#0.0];
      T     #DB_NR;
      L     W#16#1002;
      T     LW     0;
      L     8;
      T     LW     2;
      L     #DB_NR;
      T     LW     4;
      L     D [AR1,P#2.0];
      T     LD     6;

      L     #cu_pew_adr;
      T     #Temp_addr;
      CALL "DPRD_DAT" (
           LADDR                    := #Temp_addr,
           RET_VAL                  := #Ret1,
           RECORD                   := #pew_paw_pointer);

NJDSQ

  • 精华:0帖
  • 求助:2帖
  • 帖子:10帖 | 177回
  • 年度积分:15
  • 历史总积分:806
  • 注册:2010年7月07日
发表于:2020-03-19 10:17:12
8楼

蒙蒙嗒,真是一点也看不懂,这是什么语言?去哪里学?

qqd19761010

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 81回
  • 年度积分:875
  • 历史总积分:17732
  • 注册:2011年12月31日
发表于:2020-03-20 09:06:18
9楼

看一下,,学习学习

xiaoli杰

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 93回
  • 年度积分:0
  • 历史总积分:79
  • 注册:2019年12月05日
发表于:2020-03-20 16:44:55
10楼

看不懂。再看看。

小师傅解难题

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 5回
  • 年度积分:0
  • 历史总积分:35
  • 注册:2020年3月21日
发表于:2020-03-21 11:39:10
11楼

公司自动化培训专业过硬,并且一对一辅导服务,真想学可以找我,价格千来块一年,愿意花时间学才来,也没有教不会的。更多服务咨询本人

xuchao1978

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 18回
  • 年度积分:0
  • 历史总积分:56
  • 注册:2009年2月27日
发表于:2020-03-24 18:01:50
12楼

学习了,谢谢楼主的分享

function888

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 732回
  • 年度积分:0
  • 历史总积分:102
  • 注册:2007年12月01日
发表于:2020-05-15 22:54:38
13楼

感觉好深奥,好复杂


热门招聘
相关主题

官方公众号

智造工程师