关于PLC控制程序问题

分享到:
530
下一篇 >

菜鸟:

400PLC    控制   6SE70

SFC15    RECORD   中用的是临时变量 数据类型:ANY

ANY里面的数据不知道从那来的

望高手指点!

斑竹:

老外的程序搞得很复杂,但是很严谨,仔细看看

菜鸟:

看了十几天了,就一个简单正反转通过400PLC 控制 6SE70

甲:

确认下是局部变量还是全局变量,局部变量可程序上部的变量表中,全局变量搜索下看看。

菜鸟:

在临时变量里面!

乙:

老外的程序一般都是这样不直接用I/O,一般是将输入赋值中间量(M,DB,#),输出再把中间量(M,DB,#)赋值到输出。

菜鸟:

这个程序是Siemens  奥钢联编的看起太累了,那位高手能指点下有什么方法吗?


AN    #Simulation

JNB   _015

CALL  "DPWR_DAT"                               SFC15

LADDR  :=#LADDR

RECORD :=#ControlAny

RET_VAL:=#RET_VAL_DPWR_DAT


名称       数据类型     地址

TEMP 中        ControlAny         Any           20.0

IN_OUT中PPO    Status             Struct     

Control             Struct 



程序段 1    Source "Any" building


L     P##PPO

LAR1  

L     W [AR1,P#0.0]

T     #DBNumber

L     D [AR1,P#2.0]

T     #StartAddress


LAR1  P##StatusAny

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

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]



这一段是不是我要找程序给6SE70变频器启动和停止?

大虾 :

ControlAny  应该是20开始的临时变量,临时变量:是一种在块执行时,用来暂时存储数据的变量,这些数据存储在CPU工作存储区的局部数据堆栈(L堆栈)中。临时变量可以在组织快OB、功能FC和功能块FB中使用,当块执行时它们被用来临时存储数据,一旦块执行介绍,堆栈重新分配,临时变量中的数据将丢失。

临时变量的使用原则:使用前先赋值,再使用。临时字变量也是有地址的,你在TEMP区里查看这个字变量的地址,是20.0,那么这个字变量在功能块里可以用LW 20来寻址,如果要使用其中的位,比如第3位,可以用L 20.3来寻址,所以程序里应该有相关的赋值,

高手:

嗯。程序中应该对L20.0之后的数据进行了写操作。


等于是先整理好了所有数据,后来一个SFC15全部写出去了。


换谁都应该这么做。


能把德国人的程序发来一起看看吗?学习一下看看有多复杂。

丙:

感觉楼主的程序是PLC和70变频器进行报文通信的程序,老外的做法一般是先在临时变量区进行变量定义,而后对定义的变量进行操作后把操作结果保存在临时变量区,而后再用ANY这种类型对定义好的临时变量区进行操作,把操作结果写到需要的地方,数据读操作一般也是这中方式。

菜鸟:

这个就是 PLC和70变频器进行报文通信的程序,我就是找不到程序是怎么发047E   047F  让电机启动与停止。

丁:

看楼主贴出的程序里边没有控制变频器启停的逻辑啊,好像只是对报文数据进行刷新的程序,再没有其它程序了吗?

斑竹:

 估计你找不到,应该是没有这样写的指令,若果有,说明这程序也很烂,  根本就不值得学习

这只是一个与变频通讯的程序 ,只管刷数据,与启停逻辑没有关系。
 这是10几年前,DP刚开始用的时候的老套路了,针对DPV0,固定报文结构PPO,采用SFC14/15一致性刷新数据的编程方法,到后期DPV1用户自定义结构的报文允许后,就不必这么编程了,尤其是西门子的驱动。
 仍旧采用这种程序的好处就是能够兼容第三方带DP接口的驱动器,虽然硬件配置还是要修改,但程序可以基本不改,只要对方严格的遵守Profidrive的规约。

高手:

我刚才又看了一眼你贴的程序。
 
        这个FB有输入接口    #DBNumber
        和   #StartAddress
 
      是在一个#DBNumber指定的DB块中, #StartAddress开始的前面6个字是接收的状态数据区,接在后面的是控制数据区。
 

你可能感兴趣: 工控菜鸟园 变频器 PLC 安装调试 6SE70
无觅相关文章插件,快速提升流量