技术论坛

UC指令调用FC,接口参数传递事宜

作者 主题
侠圣

经验值: 2163
发帖数: 89
精华帖: 3
主题:【求助】UC指令调用FC,接口参数传递事宜


只看楼主 楼主 2021-08-21 17:41:44

进口设备程序,德文注释


使用UC指令调用FC151块(程序段见下文及附图),查看手册,UC指令无法传递接口参数;


而FC151接口参数较多,该程序段中包含指针读取DP从站(编码器)数值;


其中FC151接口参数中,DBW0是传送的DP从站指针地址(程序段见下文及附图);


既然UC指令无法传递接口参数,FC151中指针调用的地址是怎么传递过去的,费解;


UC指令调用FC151程序段:

BLD   1

      =     L     11.0

      OPN   DB   128

      A     DBX   11.1

      =     L     11.1

      UC    FC   151

            P#12.5

            P#L 10.0

            P#L 10.1

            P#L 11.1

            P#L 10.3

            P#M 0.0

            P#M 0.0

            P#M 0.7

            P#M 0.0

      BLD   2


FC151程序段:(包含指针读取DP从站(编码器)数据;其中DBW0为DP从站读数地址)

 A     M    217.0

      JC    M001

      JU    M002

      NOP   0

M001: NOP   0

      L     DBD   70

      T     #TEMP9

      L     STW

      T     #TEMP10

      L     DBW    0

      SLW   3

      LAR1  

      L     #TEMP10

      T     STW

      L     #TEMP9

      L     PID [AR1,P#0.0]

      -D    

      T     DBD    8

      NOP   0

      JU    M003


另外,再大师帮忙指点一下上面程序中,这几段程序作用:

 P#12.5

 P#L 10.0

 P#L 10.1

  P#L 11.1

  P#L 10.3

  P#M 0.0

  P#M 0.0

万分感谢!!








学海无涯
以下网友喜欢您的帖子:

  
重要声明:

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1711624&b_id=4&s_id=0&num=1

至圣

经验值: 13937
发帖数: 2008
精华帖: 43
回复:UC指令调用FC,接口参数传递事宜


只看楼主 1楼 2021-08-23 15:03:10

其实底层的参数传递都是这么执行的,是SCL编写的程序,但是你没有SCL 源代码,自动转换成STL程序就这样。

 P#12.5

 P#L 10.0

 P#L 10.1

  P#L 11.1

  P#L 10.3

  P#M 0.0

  P#M 0.1


UC 调用 不带参数传递,但是 相关参数可以在UC指令的外围进行阿!

A DB128.DBX11.1

= L 11.1 其实这就是在外围进行参数传递过程,


用CALL来调用时,程序员不必关心是实参到形参如何传递的,因此 DB128.DBX11.1 是如何给IN2使用的,那是CPU操作系统自己会做的事情。但是你这种SCL转化过来的程序就可以看到了更深层次的一些东西,实际上CPU操作系统实参到形参传递就是 通过 调用块的L区进行中转的;


正常,使用STL编写, 调用FC151,其实应该是这样编写的
CALL FC151

in0=DB101

in1=FALSE

IN1=L10.1

IN2=DB128.DBX11.1

IN3=L10.3

IN4=m0.0

in5=m0.1

in6=m0.2





人生就像一场旅行!
以下网友喜欢您的帖子:

  
  • 上一页
  • 1
  • 下一页
收起
UC指令调用FC,接口参数传递事宜
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。