s7-1500 s7-200如何建立一个带参数的子程序?
s7-200如何建立一个带参数的子程序?
首先,在“编辑”菜单下插入一个新的子例程并切换到该子例程。此时,局部变量参数的编辑区将出现在子程序上方,包括in、out等。填写变量名称并选择适当的数据类型。写一个好的子程序。如果将子例程拖到编辑区域中,您将找到需要在子例程调用指令中填充参数的区域。输入:外部输入数据。输出:子程序计算后发送给外界的数据。输入输出:先从外部输入数据,子程序计算后返回原地址。Temp:子程序的局部变量,不与外界交换数据。
s7-200如何建立一个带参数的子程序?
S7-200子程序的参数包括输入参数、输出参数和输入/输出参数。例如,如果我将VD100传输到子程序中的区域内变量LD0,则此LD0为输入参数;如果我将子程序中的区域外变量LD8传输到vd200,则此LD8为输出参数;如果vd300与子程序中的区域内变量LD0相关联,则此ld4为输出参数,vd300和ld4可以同时更改。也就是说,如果子程序中ld4的值发生变化,vd300也会发生变化。这里的“传输”和“关联”指的是主程序中的子程序调用,而不是上图中的MOV和其他传输指令。所有带参数的子程序在子程序调用中都有输入或输出或输入/输出参数。无参数是指没有上述参数。一般来说,带参数的程序与图中的程序相似。我建议不要这样用。子程序中引用全局变量不是很标准
既然你说主程序和子程序通常引用西门子200 PLC,我就用micro/win软件的操作来解释一下。
创建子例程时,子例程会出现在“调用子例程”树目录中,如我红框出的sbr0是系统默认值,打开软件会自动存在一个子例程!SBR1是我昨天使用向导设置的一个PID指令子例程。
还应强调的是,在西门子200 PLC中,许多指令不能直接连接到左侧的总线。必须有联系指示。我在这里使用的sm0.0是一个联系指令,它总是在我启动时就连接起来。如果,这里不使用联系指令,那么编译时将报告一个错误
!许多命令需要一个contact命令才能连接到左侧总线,但有几个命令是不需要的,这在我的一些文章中可能会提到。编译时会有提示,所以不要太在意
!仅此而已。我希望它能帮助你。谢谢您
西门子PLC如何在主程序,写入调用子程序的命令?
很高兴遇到PLC的专业问题
!对于您的问题,您已经说过它是一个局部变量。证明你还知道一些概念
!事实上,局部变量也可以说是内部变量,即子程序块中定义的变量。它只有在子程序块内部使用时才有效,但不能在其他地方调用。因此,即使两个子例程具有相同的内部变量名,它们也不会冲突
!让我们看另一张图片:
本文中的图片仅用于说明局部变量的地址关系,因此我创建的所有变量都是类型变量。当我实际制作一个程序块时,我需要根据子块的实际情况进行分配。例如,out应该内置在out类型中
!简单地说,如果您对此有任何疑问,请注意留言,谢谢!很容易实现,很简单,你打开编程软件,在子程序中找到这个,你在我的图片中定义相同的图片,然后你回到主程序中调用子程序,打开它看到你自己的符号,希望对你有所帮助
S7-200调用多个含有相同局部变量的子程序起冲突怎么办?
如何用参数调用子程序实现西门子PLC?1直接应用step 7-micro/win标准指令库中的子程序刻度可用于将模拟输入转换为S7-200的内部数据;子程序刻度可用于将内部数据转换为模拟输出。
西门子PLC带参数调用子程序怎么实现的,在线等?
进入子例程后,系统将为临时变量分配存储地址。子例程被调用后,系统不会清除这些分配的地址,而是直接将它们交给下一个子例程。一般来说,就像客房一样,系统不会为下一个租户清理,所以如果下一个租户直接使用系统会出现问题。因此,程序员需要遵循同样的原则:临时变量:先赋值,然后使用它们。
西门子PLC带参数调用子程序怎么实现的?
Fanuc 0系统模块调用指令(g66、G67):
功能:一旦指定了g66,在执行包含轴移动命令的后续部分后,将调用地址P指定的宏,直到发出G67命令,此模式将被取消。
Format g66 PP ll< table of independent variables>;
其中:
要调用的程序号
L重复次数(默认值为1,值范围为1~9999)
传递给宏的自变量数。与G65调用一样,通过使用自变量表将值分配给相应的局部变量。
注意:最多可以嵌套4级带有简单调用(G65)和模块化调用(g66)的程序。不包括子程序调用(M98)。G66可以在模块调用期间重复嵌套。
在g66节中,无法调用宏。
确保在自变量之前指定g66。
不能在与轴移动无关的段中调用宏,如M代码。
局部变量(自变量)只能在g66节中设置,不能在每次执行模块调用时设置。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。