本溪西门子PLC控制系统代理商
作为工业自动化和数字化解决方案提供商的****之一,西门子在自动化领域拥有深厚的技术储备和丰富的经验。西门子PLC控制器是西门子公司的核心产品之一,它是工业现场、设备端和信息层衔接的重要部分,可实现工业自动化的高效、智能和可靠控制。
3.编写子程序的梯形图
局部变量表的下面是程序区(见上图),输入参数“转换值"是来自模拟量输入模块的与模拟量成正比的转换值,输出参数“模拟值"是计算出的对应的模拟量(例如压力、温度等)的工程值。子程序中变量名称前的“#"表示该变量是局部变量,它是编程软件自动添加的,输入局部变量时不用输入“#"号。特殊存储器位SM0.0的常开触点总是闭合。
4.子程序的调用
可以在主程序、其他子程序或中断程序中调用子程序,调用子程序时将执行子程序中的指令,直至子程序结束,然后返回调用它的程序中该子程序调用指令的下一条指令之处。
创建子程序后,在上图左边指令树*下面的“调用子程序"文件夹中自动生成刚创建的子程序“模拟量计算"对应的图标。
在梯形图程序中插入子程序调用指令时,首先打开主程序,显示出需要调用子程序的网络。打开指令树*下面的“调用子程序"文件夹,用鼠标左键按住需要调用的子程序图标,将它“拖"到程序编辑器中需要的位置。放开左键,子程序块便被放置在该位置。
子程序方框中左边的“转换值"等是在子程序“模拟量计算"的变量声明表中定义的输入参数,右边的“模拟值"是输出参数。它们被称为子程序的形式参数,简称为形参,形参在子程序内部的程序中使用。调用子程序时,需要为每个形参实际的参数(简称为实参),例如为形参“转换值"的实参为模拟量输入字AIW2(见上图)。
子程序调用指令中的实参的有效操作数为存储器地址、常量、全局符号和调用指令所在的POU中的局部变量,不能被调用子程序中的局部变量。
CPU调用子程序时,输入参数被复制到子程序的局部存储器,子程序执行完后,从局部存储器复制输出参数到的输出参数地址。
西门子S7-300/400的子程序分为功能(Function)和功能块(Function Block)。
1.功能(FC)
功能是用户编写的没有固定的存储区的程序块,其临时变量存储在局部数据堆栈中,功能执行结束后,不再保存这些数据。可以用共享数据区来存储那些在功能执行结束后需要保存的数据。
功能与S7-200的子程序的局部变量基本上相同(见下图)。与S7-200的子程序相比,其局部变量多了个返回值(RET_VAL)。返回值实际上属于输出参数。
提高PLC运行效率,缩短完成相同任务时的执行时间。
提醒:初学者不必在意本文归纳的做法,以程序易读、规范为目标,完成功能要求即可。
1、可以用“字"的时候尽量避免用“双字",可以用整数时,尽量避免用实数。
2、优先使用富余的(硬件连接以外的)IB、IW、ID、QB、QW、QD,其次是M,S;
3、尽量避免数据类型转换,不得不用时,尽量用AC存放中间变量,减少转换次数。或者编程时先预留出存储空间,比如:用VW2存整数时,VW0空出不用,就可以直接以VD0的形式来进行访问VW2中的数据;
4、减少非必要网络扫描,把可以设条件执行的网络(特别是AIW、AQW),归类到子程序中作条件调用(例如定时中断);
5、用XOR指令实现任意位取反(这指令略有难度,调试中更需要认真对位,编程时建议用二进制数);
6、在保证工艺要求前提下,适当减小发生中断的频率;
7、子程序应该尽量减少条件判断的次数,规格化子程序进出口参数,从而减少代码冗余。
8、对于有重复性、耗时的任务,应采用分周期处理;其中包括:把初始化工作分摊到多个周期完成。令多个PID回路的采样时间略有差别,以避免在同一周期内产生多个中断调用,让扫描周期更均匀稳定
本溪西门子PLC控制系统代理商