STEP7 编程语言和PLC 程序编制
2010-09-07李方坤邹艳敏何恩博
李方坤 邹艳敏 何恩博
(1、齐重数控装备股份有限公司,黑龙江 齐齐哈尔 161000 2、黑龙江省送变电工程公司,黑龙江 哈尔滨 150000)
全集成自动化技术TIA(Totally Integrated Automation)是西门子自动化系统技术与产品的核心思想和主导理念。TIA 集高度的集成统一性和前所未有的开放性于一身,标准化的网络体系结构、统一的编程组态环境和高度一致的数据集成,使TIA 成为企业实现了横向和纵向的信息集成;领先的通讯标准、基于组件的自动化技术(CBA)与IT 集成,使TIA 对全球自动化市场的产品和服务范围真正开放。
SIEMENS 系统的可编程序控制器SIMATIC MANAGER 是西门子用于进行PLC 程序编制,进行机床状态控制的组件,它主要组成包括电源模块、CPU 模块、输入输出模块,其接口有,RS232借口,PROFIBUS 借口,MPI 电缆接口等。通过X122、MPI 插口,使电脑与NCU 相连PLC。
1 硬件组态
硬件组态使STEP7 软件的一项重要功能。STEP7 软件中的“硬件组态”,就是模拟真实的PLC 硬件系统,将CPU、电源和信号模块等设备安装到相应的机架上,并对PLC 硬件模块的参数进行设置和修改的过程。
波特率:MPI 187.5kbps
OPI 1.5Mbps
过程:建项目→建站→组态硬件
1.1 自动组态:用线缆建PLC 与840D 相连,用自动组态自动识别(上载站)将PLC 传到计算机:PLC→UPLOAD→选MPI 地址=2,若地址=3,将包括PLC 和NCU。若备份PLC,则过程为:新建Project→plc→upload station,这样就将硬件备份了。建立完站后,出现文件夹:hardware 和cpu.CPU 文件夹下有S7 程序。
S7 程序下有三个目录:symbols(符号表)、sources(源文件)、blocks(功能块)
1.2 手动组态:打开S7→新建文件→INERT→STATION→SIMATIC300→双击HARDWARE→INSERT→HARDWARE COMPONENT→PROFILE→STANDARD→S300→RACK300,选相应的位置(待置位表中),再在右侧相应的模块上双击就将模块选定,选好后再下载。
2 编程
在进行PLC 程序编制中,可采用以下三种形式:
逻辑梯形图(LAD)、语句表(STL)、功能块图(FBD)
语句表编程常用指令:
STEP7 中常用BLOCK 主要有几种:OB 组织块、FC 功能块、FB 功能块、DB 数据块等。
OB:功能块,相当于主程序,常用的有OB1和OB100;
FC、FB:功能块,相当于子程序
在编完子程序后,必须在主程序中调用子程序
OB100 是PLC上电后先执行,只执行一次;OB1 是PLC CPU 循环执行的程序。上电后首先执行OB100,再执行OB1(反复执行;OB100 调用FB1(西门子编好)
FB1 是系统里用OPI 总线连接PCU 和MCP,对控制面板进行定义:控制面板的输入地址的起始地址;控制面板的数量;控制面板的输出地址的起始地址;控制面板的MPI 地址:MCPIBUSADR=6
组织块(OB)。在CPU 中,用户程序由启动程序、主程序和各种中断响应程序等不同的程序模块构成,这些模块在STEP7 中的实现形式就是OB。OB 是直接被操作系统调用的用户程序块,OB 与不同的CPU 类型是相关的,某一型号的CPU 支持哪些OB 是确定的。OB1 是对应于循环执行的主程序的程序块,它是STEP7 程序的主干,其他大多数OB 则对应于不同的中断处理程序(另外还有启动程序和背景程序等非中断类的OB)。
功能(FC)和功能块(FB)。 FC 和FB 都是用户自己编写的程序模块,可以被其他程序块(OB、FC 和FB)调用。FC 与FB 的根本区别在于,FC 不具备自己的存储区,而FB 拥有自己的存储区(背景DB),在调用任何一个FB 时,都必须指定一个背景DB。
FC2:基本NCK 与PLC 通讯的
NCK←→PLC
FC2 必须在OB1 的开始部分
FC2——“gp_hp”
FC10:处理报警信息
FC10——“AL-MSG”
PLC 产生报警,传给NCK,NC 采取措施,同时在MMC上显示报警文本
调用FC1 两个参数需设置
TouserIF=TRUE(相当于 1)和 FALSE(相当于0)
Quit:=I3.7(报警文本)。报警复位键(RESET)地址I3.7
FC19:机床控制面板主程序FC19——“MCP-IFM”
BAGNO(方式组号)=B#16#1(B—B 进制16-16 进制)
CHANNO(通道号)=B#16#1
SPINDLEIFNO:=B#16#4(主轴号)
FEEDHOLD=M100.0(进给暂停)
SPINDLEHOLD=M100.1(主轴停止)
数据块(DB)。DB 分为背景DB 和共享DB两种类型。背景DB 是和FB 相关联的,因此在创建背景DB 时,必须指定它所属的FB,而且该FB必须已经存在。在调用一个FB 得时候,也必须指明一个与之对应的背景DB[1]。
背景DB 与共享DB 没有本质的区别,它们的数据都可以被任何一个OB、FC 或FB 读写。两者之间的主要区别在于使用的目的:背景DB 的用途或目的是为某一个FB 提供数据,因此其数据格式必须与该FB 的变量声明一致;共享DB的目的是为用户程序提供一个可保存的数据区,它的数据结构并不依赖于特定的程序块。
1)DB 模块类型主要有:
DBB--数据模块类型
DBW--数据块字(16 位)DBD--数据块双字(32 位)
2)数据类型:
DOUBLE:实型或整型数,输入范围±4.19 ×10-307-±1.67×10308
DWORD:整型数,范围为-2.147 ×1092.14-7×109
BOOL:0 或1
BYTE:整型数,范围位-128-127
STRING:最多16 位字符串
3)常用数据块功能
DB2:报警接口信号。该信号是从PLC 到NCK,在PLC 中设置相应的位就能在MMC上产生相应的报警号(7 开头的报警是机床场假设定的)
DB10:显示NCU 的状态,用来交换NCK 的快速I/O 的状态的接口,还有一些NCK 的状态信号
DB11:方式组信号接口
DB19:操作面板信号接口
DB21-DB30:通道信号接口
DB31-DB61:轴/主轴的接口信号
[1]杨光,朱震忠.深入浅出西门子S7-300PLC.西门子(中国)有限公司 自动化与驱动集团