回复:德国人编的程序看不懂?

万泉河

  • 帖子

    10904
  • 精华

    132
  • 被关注

    1012

论坛等级:至圣

注册时间:2003-06-06

钻石 钻石 如何晋级?

发布于 2013-12-28 17:59:38

52楼

quote:以下是引用xkqxwhz在2013-12-28 16:04:15的发言:











L P##PPO //从上一级FB209的静态变量区传过的地址:656
LAR1
L W [AR1,P#0.0]
T #DBNumber //这个数据块地址难道是656?,肯定是不对的,实际为FB209的背景数据块DB101,有点搞不懂了!
L D [AR1,P#2.0]
T #StartAddress //这个地址怎么感觉是658啊? 实际应为656啊,有点搞不懂 !

LAR1 P##StatusAny //建立状态字的ANY地址指针,指向的地址DB101.DBB656~DBB667 12个字节
L B#16#10
T LB [AR1,P#0.0]
L B#16#2
T LB [AR1,P#1.0]
L 12
T LW [AR1,P#2.0]
L #DBNumber
T LW [AR1,P#4.0]
L #StartAddress
T LD [AR1,P#6.0]

LAR1 P##ControlAny //建立控制字的ANY地址指针 ,指向的地址DB101.DBB668~DBB679 12个字节
L B#16#10
T LB [AR1,P#0.0]
L B#16#2
T LB [AR1,P#1.0]
L 12
T LW [AR1,P#2.0]
L #DBNumber
T LW [AR1,P#4.0]
L 12
SLD 3
L #StartAddress
+D
T LD [AR1,P#6.0]
Zane 斑竹前辈能否帮忙看一下前边的疑问,看了半天实在是有点困难,请高手指教一下。谢谢


你前面读的程序都挺准确的,基本上可以满足楼主的读程序需求了。
反正我们可以知道#ControlAny描述了PPO之中的control这个结构部分的内容。

所以那段程序费了很大的劲,把从IN_OUT传进来 指针PPO之中的DB块、地址偏移量等信息读出来,然后送给了自己定义的controlany指针,用于最终送给6SE70。

其实绕这么多弯的主要原因是他使用的是FC,而不是FB。然后变量还要从IN_OUT传进来(只是给了块空间,#FC_19.PPO 数据在外面根本没有访问过)。而IN_OUT变量不仅不支持SFC14,15,也不能被SFC20识别。

如果使用FB,就没有这些麻烦了,因为可以直接使用STAT, SFC14/15 读写也可以直接使用PPO.status 和PPO.CONTROL。

总的来说程序规划有些毛病。
微信公众号:PLC标准化编程,ZHO6371995
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54717条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。