登录
首页 PLC论坛 西门子SIEMENS
回帖 发帖
正文

主题:s7-200库学习总结和疑问

点击:2014 回复:12

1.我是个plc小白,最近有空自学200
2.今天看到库的学习,还好都看懂了.小结一下,算是加深记忆,同是还有很多疑问请教大家
3.库其实就是一个子程序,先打包好,然后需要定义输入和输出口,将不同的符号,地址套进这个库,运行相同的过程,最后输出给不同的地址。
4.所以库中的变量等等,都不能是指定的io区,v区(m区除外)。应该是各种符号,例如AAA,BBB,pressure
,temperture等等
5.那么在调用的时候,就应该给这些符号分配每个地址,存储区。
6.教程中教的:右键程序块_库存储区,可以自动給库分配存储区。
7.看到这,我就有疑问了,系统自动分配的存储区,那么可不可以我自己手动给库定义存储区?
7.图片move是我自己做的库,如果想自己给库定义存储区,是不是就在下面那些“符号,地址,注释里手动输入”???
8.转念再一想,好像不对,一个库可以调用多次,这里定义地址后,如果一个程序中再次调用这个库,那得到都结果都是按照这一次地址得到的。
9.不懂,请教各位,,谢谢
附件 1492349951249.jpg
17-04-16 21:42
主程序中我两次调用了这个库,没见到不同的定义地址,存储区的地方,那么就无法实现用一个库,套用多个地方去。不懂,不懂
附件 1492350305417.jpg
17-04-16 21:46
这才是正确的调用
附件 1492350521446.jpg
17-04-16 21:48
你这个是无参数传递的;如果要传递参数就可定义输入、输出才能有数据传递
17-04-17 08:06
嵌套子程序的库吗?
17-04-17 08:08
3.库其实就是一个子程序,先打包好,然后需要定义输入和输出口,将不同的符号,地址套进这个库,运行相同的过程,最后输出给不同的地址。
A :库是子程序的集合,其目的是减少重复代码。
4.所以库中的变量等等,都不能是指定的io区,v区(m区除外)。应该是各种符号,例如AAA,BBB,pressure,temperture等等
A:这些变量系统为其分配L区域,所以子程序中对于变量的使用务必做到先赋值后使用。
5.那么在调用的时候,就应该给这些符号分配每个地址,存储区。
A:无参数子程序不需要赋值,但是其内部变量的使用应该先赋值。
8.转念再一想,好像不对,一个库可以调用多次,这里定义地址后,如果一个程序中再次调用这个库,那得到都结果都是按照这一次地址得到的。
A:正因为分配的是L区域,并且系统并不负责L区域数据的回收,例如,L区域分配给A子程序使用,A用完后,当调用B子程序,系统不负责清空这些L区域内的数据,因此,当程序员不遵守先赋值后使用时,这些L区域中的数据就会给B子程序使用,造成数据混乱。
HAVE FUN!
17-04-17 08:50
我库中的AA:VB0这个不算参数吗,每次调用库,不一定都要用vb0啊
17-04-17 22:29
无法回答你,我还不很懂
17-04-17 22:30
谢谢你的回复,需要多看几次才会懂
17-04-17 22:32
今天还在用,感觉在子程序里用置位和复位,不太好用,如果停止调用子程序,那么里面子程序里的置位和复位会保持!
17-04-18 21:39

上一页下一页

工控新闻

更多新闻资讯