青岛西门子PLC模块经销总代理商青岛西门子PLC代理,青岛西门子S7-1500代理,西门子PLC代理
可以在主程序、另一子程序或中断程序中调用子程序,但是不能在子程序中调用自己(即不允许递归调用)。调用子程序时将执行子程序的全部指令,肖至子程序结束,然后返回调用程序中子程序调用指令的下一条指令之处。
使用 STEP7 V16 创建一个新项目,并通过“添加新设备”组态 S7-1200 站 client V4.4,选择 CPU1214C DC/DC/DC V4.4(client IP:192.168.0.102),建立新子网;再打开博图V16创建一个新项目,组态另一个S7-1200站 server v4.4,选择 CPU1214C DC/DC/DC V4.4(server IP:192.168.0.105),建立新子网。
2. 首先编写客户端程序:打开OB1编程界面,选择指令集下的通信-开放式用户通信-其它下的TCON建立连接通信指令,将其拖拽到程序段一;点击指令框内的组态图标,组态与服务器的通信参。
创建子程序后,STEP 7-Micro/WIN32在指令树*下面的“子程序”图标下自动生成刚创建的子程序CULCU对应的图标。对于梯形阁程序,在子程序局部变量表中为该子程序定义参数后,将生成客户化调用指令块(见图6-6),指令块中自动包含了子程序的输人参数和输出参数。
为了使梯形图和继电器电路图中触点的类型相同,建议尽可能地用常开触点作可编程序控制器的输人信号。如果某些信号只能用常闭触点输人,可以按输人全部为常开触点来设计,城后将梯形图中相应的输人位的触点改为相反的做占,即常开触点改为常闭触点,常闭触点为常开触点。
根据继电器电路图设计梯形图的方法
可编程序控制器使用与继电器电路图极为相似的梯形图语言。如果用可编程序控制器改造继电器控制系统,根据继电器电路图来设计梯形图是一条捷径。这是因为原有的继电器空制系统经过长期使用和考验,已经被证明能完成系统要求的控制功能,而继电器电路图又与梯形图有很多相似之处,因此可以将继电器电路图“翻译”成梯形图,即用可编程序控制器的外部硬件接线和梯形图软件来实现继电器系统的功能。
功能FC1用来控制发动机的风扇,要求在发动机运行信号Engine_On变为1时起动风扇,发动机停车后,用输出的BOOL变量Fan_On控制的风扇继续运行30s后停机。
在FCI中,用延时断开定时器S_OFFDT(见图4-16)来定时。在功能的变量声明表中定义的输入参数Timer_Function是延时断开定时器的编号,数据类型为Timer,在调用FC1 时用它来为不同的发动机指定不同的定时器。
3. 功能与功能块的区别
FB和FC均为用户编写的子程序,局部数据均有IN、OUT、IN_OUT和TEMP,临时变量TEMP储存在局部数据堆栈中。
1)FC的返回值RET_VAL实际上是输出参数,因此有无静态变量(STAT)是二者的局部变量的本质区别,功能块的静态变量用背景数据块来保存。如果功能有执行完后需要保存的数据,只能存放在全局变量(I/Q、PI/PQ、M、T、C和共享数据块)中,但是这样会影响功能的可移植性。
在梯形图程序中插人子程序调用指令时,首先打开程序编辑器视窗中需要调用子程序,找到需要调用子程序的地方。在指令树的*下面用左键打开子程序文件夹,将需要子程序图标从指令树拖到程序编辑器中的正确位置。或将光标置于程序编辑器视窗双击指令树中的调用指令。
应为子程序调用指令的各参数指定有效的操作数,有效操作数为存储器地址、常量、全局符号和调用指令所在的P0U中的局部变量(不是被调用子程序中的局部变量)。