近期看到了一段程序, 输出线圈定义为L0.0。
请各位仁兄帮助解释一下,见下图。
图片说明:
最佳答案
L相当于DB,区别在于,L只是局部变量,只用于子程序中,且初始值不固定,即不一定为0,多用于子程序的中间临时变量。DB是全局变量,可保存。
L的用法和DB一样,在子程序中,L0.0的用法就和DB1.DB0.0或M0.0一样。因为L不能保存变量,所以一般只充当临时变量,所以每个子程序都可以调用L0.0。之所以用L,可以减少变量的占用,简约变量空间。
1. M 作为控制继电器来存储中间操作状态或其他控制信息,也可以按MB,MW,MD来存取。它在整个POU(Program Organizational Unit)有效,因此在编程前最好在全局符号表中先定义,这样一来在各个程序中使用时不会发生冲突等,也备于查错。
2. L 是局部存储器,作为暂时存储器或给子程序传递参数,L也可以L*.*(如L2.5 是BOOL 量,是第二个字节的第五位),LB,LW,LD来存取,但仅仅在它被创建的POU中有效,它也可以在符号表中定义,但只能在各个POU自己的符号表中定义.
3. 全局变量和局部变量在符号寻址编程时,全局变量直接显示符号名,而局部变量在符号前会加上#,采用局部变量编程有很多优势:程序可以功能化移植(减少重复编程量),大程序方便协同作战(把任务分成各个功能块),这是SIEMENS的PLC比较优越性之处。尤其是S7-300/400更突出其BLOCK结构。但他的入门坎比其他PLC的确难一些。
提问者对于答案的评价:
谢谢回答,以了解。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc249576.html