STEP7-Micro/Win在程序编辑器窗口里为每个POU提供一个独立的页。主程序总是*1页,后面是子程序或中断程序。因为各个程序在编辑器窗口里被分开,编译时在程序结束的地方自动加入无条件结束指令或无条件返回指令,用户程序只能使用条件结束和条件返回指令。
通常将具有特定功能且多次使用的程序段作为子程序。子程序可以多次被调用,也可以嵌套(较多8层),还可以递归调用(自己调用自己)。子程序有子程序调用和子程序返回两大类指令,子程序返回又分条件返回和无条件返回。子程序调用指令用在主程序或其他调用子程序的程序中,子程序的无条件返回指令在子程序的最后网络段。梯形图指令系统能够自动生成子程序的无条件返回指令,用户*输入。
子程序的调用是有条件的,未调用它时不会执行子程序中的指令,因此使用子程序可以减少扫描时间,同时可使整个程序功能清晰,易于查错和维护,还能减少存储空间。为了移植子程序,应避免使用全局符号和变量,例如V存储区中的**地址。
在编程软件的程序数据窗口的下方有主程序(OBI)、子程序(SUB0)、中断服务程序(INT0) 的标签,点击子程序标签即可进入SUB0子程序显示区。也可以通过指令树的项目进入子程序SUB0显示区。添加一个子程序时,可以用编辑菜单的插入项增加一个子程序,子程序编号n从0开始自动向上生成。用鼠标右键点击指令树中的子程序或中断程序的图标,在弹出的菜单中选择“重新命名”,可以修改它们的名称。
子程序可能有要传递的参数(变量和数据),这时可以在子程序调用指令中包含相应参数,它可以在子程序与调用程序之间传送。参数(变量和数据)必须有符号名(较多8个字符)、变量和数据类型等内容。子程序较多可传递16个参数。传递的参数在子程序局部变量表中定义。局部变量表中的变量有IN、OUT、IN/OUT和TEMP等四种类型。
●IN类型:将*位置的参数传入子程序。参数的寻址方式可以是直接寻址(如VB10)、间接寻址(如*ACl)或立即数(如1234)。也可以将数据的地址值传入子程序(&VB100)。
●OUT类型:是子程序的结果值(数据),它被返回给调用它的POU。常数和地址值不允许作为输出参数。
●IN/OUT类型:将*位置的参数传到子程序,从子程序来的结果值被返回到同样的地址。常数和地址值不允许作为输出参数。
●TEMP类型:局部存储器只能用作子程序内部的暂时存储器,不能用来传递参数。
局部变量表的数据类型可以是能流、布尔(位)、字节、字、双字、整数、双整数和实数型。能流是指仅允许对位输入操作的布尔能流(布尔型),梯形图表达形式为用触点(位输入)将电源母线和指令盒连接起来。
在局部变量表输入变量名称、变量类型、数据类型等参数以后,双击指令树中的子程序(或选择点击方框快捷按钮,在弹出的菜单中选择子程序项),在梯形图显示区显示出带参数的子程序调用指令盒。
局部变量表变量类型的修改方法是,用光标选中变量类型区,点击鼠标右键得到一个下拉菜单,选择插入项,弹出一个下拉子菜单,点击选中的类型,在变量类型区光标所在处即可得到选中的类型。
给予程序传递参数时,它们放在子程序的局部存储器(L)中,局部变量表较左列是每个被传递参数的局部存储器地址。
子程序调用时,输入参数被拷贝到局部存储器。子程序完成时,从局部存储器拷贝输出参数到*的输出参数地址。
内部寄存器的方法。如果把PLC的内部寄存器比喻成一幢大楼,那么寻址方法就是对房间门牌的编号。只有掌握了寄存器的寻址方法,我们才能正确使用内部寄存器。
内部寄存器的寻址,是欧美系PLC所*有的,它不同于日系的PLC。因为日系的PLC一般是直接使用。比如三菱的PLC,它用D0,D1来表示内部的数据寄存器。M0,M1 表示的是位寄存器,D0 和M0之间没有任何关系而欧系PLC与日系的完全不同,是使用和计算机一样的寻址方法。
计算机较基本的存储单位是位,同样,在PLC内也是采用位作为较基本的寻址单位。八个位组成一个字节,两个字节组成一个字。西门子博途软件平台中,高位在低字节,低位在高字节。这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放,这和我们的阅读习惯一致。这样说起来可能很抽象,我们直接看图。
如图,这是较基本的存储单元,MB0.0表示的是一个较基本的位,MB0表示一个字节,很明显,从MB0.0到MB0.7的八个位组成了一个字节,也就是MB0。其中MB0.0相当于三菱plc的M0,而MB0可以认为是三菱PLC的D0,很显然,他们是你中有我,我中有你的关系。所以,写程序**定要做好规划,避免地址重叠。
这就是西门子博途软件平台的寻址方式,很显然,他有重叠的部分,这是我们要注意的,也是和日系PLC较大的不同,也可以说是欧系PLC的一个大陷阱。比如,MW1 和 MW0 MW2有重叠的部分,我们使用了MW1之后,为了避免地址重复,就不要再使用MW0 和MW1了。MD0 同理。
这就是西门子博途软件平台的寻址方式,很显然,他有重叠的部分,这是我们要注意的,也是和日系PLC较大的不同,也可以说是欧系PLC的一个大陷阱。比如,MW1 和 MW0 MW2有重叠的部分,我们使用了MW1之后,为了避免地址重复,就不要再使用MW0 和MW1了。MD0 同理。
输入(Input)模块和输出(Output)模块简称为I/O模块,数字量(又称为开关量)输入模块和数字量输出模块简称为DI模块和DO模块,模拟量输入模块和模拟量输出模块简称为AI模块和AO模块,它们统称为信号模块,简称为SM。
信号模块安装在CPU模块的右边,扩展能力较强的CPU可以扩展8个信号模块,以增加数字量和模拟量输入、输出点。
信号模块是系统的眼、耳、手、脚,是联系外部现场设备和CPU的桥梁。输入模块用来接收和采集输入信号,数字量输入模块用来接收从按钮、选择开关、数字拨码开关、限位开关、
接近开关
、光电开关、压力
继电器
等来的数字量输入信号。模拟量输入模块用来接收电位器、测速发电机和各种变送器提供的连续变化的模拟量电流、电压信号,或者直接接收热电阻、热电偶提供的温度信号。
数字量输出模块用来控制
接触器
、电磁阀、电磁铁、指示灯、数字显示装置和报警装置等输出设备,模拟量输出模块用来控制电动调节阀、
变频器
等执行器。
CPU模块内部的工作电压一般是DC5V,而PLC的外部输入/输出信号电压一般较高,例如DC24V或AC220V。从外部引入的尖峰电压和干扰噪声可能损坏CPU中的
元器件
,或使PLC不能正常工作。在信号模块中,用光耦合器、光敏晶闸管、小型继电器等器件来隔离PLC的内部电路和外部的输入、输出电路。信号模块除了传递信号外,还有电平转换与隔离的作用。
3、通信模块
通信模块安装在CPU模块的左边,较多可以添加3块通信模块,可以使用点对点通信模块、PROFIBUS模块、工业远程通信模块、AS-i接口模块和IO-Link模块。
4、SIMATIC HMI精简系列面板
与S7-1200配套的*二代精简面板的64K色高分辨率宽屏显示器的尺寸有4.3in、7in、9in和12in这4种,支持垂直安装,用TIA博途中的WinCC组态。它们有一个RS-422/RS-485接口或一个RJ45以太网接口,还有一个USB 2.0接口。USB接口可连接键盘、鼠标或条形码扫描仪,可用优盘实现数据记录。
5、编程软件
TIA是Totally Integrated Automation(全集成自动化)的简称,TIA博途(TIA Portal)是西门子自动化的全新工程设计软件平台。S7-1200用TIA博途中的STEP 7 Basic(基本版)或STEP 7 Professional(专业版)编程。
数字量输入模块用于连接外部的机械触点和电子数字式传感器,例如光电开关和接近开关等。数字量输入模块将来自现场的外部数字量信号的电平转换为plc内部的信号电平。输入电流一般为数毫安。
图1是直流输入模块的内部电路和外部接线图,图中只画出了一路输入电路,M或N是同一输入组内各内部输入电路的公共点。当图1中的外部电路接通时,光耦合器中的发光二极管( LED)点亮,光敏三极管饱和导通;外部电路断开时,光耦合器中的LED熄灭,光敏三极管截止,信号经背板总线接口传送给CPU模块。
交流输入模块的额定输入电压为AC 120 V或230 V。图2的电路用电容隔离输入信号中的直流成分,用电阻限流,交流成分经桥式整流电路转换为直流电流。外部电路接通时,光耦合器中的发光二极管和显示用的发光二极管点亮,光敏三极管饱和导通。外部电路断开时,光耦合器中的发光二极管熄灭,光敏三极管截止,信号经背板总线接口传送给CPU模块。
数字量输入模块电路
数字量输入模块电路
图1 数字量输入模块电路
数字量输入模块电路
数字量输入模块电路
图2 数字量输入模块电路
直流输入电路的延迟时间较短,可以直接与接近开关、光电开关等电子输入装置连接,DC 24 V是一种安全电压。如果信号线不是很长,PLC所处的物理环境较好,应考虑**选用DC 24 V的输入模块。交流输入方式适合在有油雾、粉尘的恶劣环境下使用。
数字量输入模块可以直接连接两线式BERO接近开关,后者的输出信号为0状态时,其输出电流(空载电流)不为0。在选型时应保证两线式BERO的空载电流小于输入模块允许的静态电流,否则将会产生错误的输入信号。
根据输入电流的流向,可以将输入电路分为源输入电路和漏输入电路。漏输入电路(见图1)的输入回路电流从模块的信号输入端流进来,从模块内部输入电路的公共点M流出去。PNP集电极开路输出的传感器应接到漏输入的数字量输入模块。
在源输入电路的输入回路中,电流从模块的信号输入端流出去,从模块内部输入电路的公共点M流进来。NPN集电极开路输出的传感器应接到源输入的数字量输入模块。
数字量模块的输入/输出电缆的较大长度为1000 m(屏蔽电缆)或600 m(非屏蔽电缆)