西门子模块6ES7216-2BD23-0XB8正规授权
自1969年世界上诞生了台可编程逻辑控制器(PLC)以来,可编程控制技术在工业控制领域便一路高歌,取得了极为广泛的应用。在这过去的30多年里,计算机技术、电子技术、网络通信技术以及自动控制技术的飞速发展,使得工程师们在工业应用中对于控制器的功能需求也远远超越了当初的“顺序逻辑控制”的简单期望。
来自于奥地利的贝加莱(B&R)工业自动化公司便是敏锐地捕捉到这一技术需求的变化,早在1994年便在全球个推出了基于定性实时多任务操作系统(RealTime multi-tasking Operation System)的可编程计算机控制器(PCC—ProgrammableComputer Controller),时至,仍然代表了这一创新技术的发展趋势,成为新一代自控工程师的新宠。
我们知道,常规的PLC大多依赖于单任务的时钟扫描或监控程序,来处理程序本身的逻辑运算指令以及外部的I/O通道的状态采集与刷新,整个应用程序采用一个循环周期,但事实上在一个控制系统中,往往有一些数据量是实时性要求很高的,但也有很多大惯性的模拟量是没有太高实时要求的,如果采用同样的刷新速度其实是对资源的浪费,循环顺序扫描的运行机制也直接导致了系统的控制速度严重依赖于应用程序的大小,应用程序一旦复杂庞大,控制速度就必然降低。这无疑是与I/O通道高实时性控制的要求相违背的。
而贝加莱PCC系统的设计方案则完美地解决了这一问题,与常规PLC相比较,PCC大的特点就在于其引入了类大型计算机的分时多任务操作系统理念,并辅以多样化的应用软件设计手段,由于分时多任务的运行机制,使得应用任务的循环周期与程序长短无关,而是由设计人员根据工艺需要自由设定,从而将应用程序的扫描周期同真正外部的控制周期区别开来,满足了真正实时控制的要求,这种控制周期是可以在CPU运算能力允许的前提下,按照用户的实际要求而做相应设定。
传统PLC运行模式
贝加莱PCC-定性分时多任务操作系统的运行模式
基于这样的运行平台,PCC的应用程序可分为多个独立的任务模块,这样给便应用软件的开发带来了极大的便利,因为工程师可以方便地根据控制项目中各子系统的不同功能要求,如数据采集,报警,PID调节运算,通信控制等,开发相应的控制程序模块(任务),在分别编制和调试之后,可一同下载至PCC的用户程序存储器中,在多任务操作系统的调度管理下,并行协同运行,因为这些模块既相互独立运行,而数据间又保持一定的相互关联,由他们共同实现项目的控制要求。在这多个任务中,根据不同任务对实时性能的不同需求,设计人员可以指定不同的优先等级即确定的循环周期,从而实现确定的分时多任务控制。即便某个任务处于等待状态,别的任务也可继续执行。
这种多任务的运行机制,采用大型应用软件的模块化设计思想,还带来了项目开发效率上的提高,有着常规PLC无法比拟的灵活性。因为多任务的思想使得各个任务模块的功能描述更趋清晰简洁,用户可以自行开发自己独有的而又具有通用性的独立功能模块,并将其封装以便于日后在其他应用项目中重新使用。各个不同的任务甚至可以由开发小组的不同成员分别编制,不同的开发人员基于共同的约定,可以灵活选用不同编程语言,这就意味着不仅在常规PLC上一直为人们所熟悉的梯形图,指令表等符合IEC6113-3规范的通用语言可以在PCC上继续沿用,用户还可采用更为高效直观的语言,比如ANSIC 和AutomationBasic,从而实现复杂的数学运算功能和过程控制算法。所有这些编程语言,PCC都采用“符号变量”来标识外部I/O通道及内部寄存器单元(例如用户可用motor_run来代表某开关量输出通道,button_down代表某开关量输入通道)。这样,软件开发人员毋需熟知PCC内部的硬件资源分布,而只须集中精力于项目本身的工艺要求,即可迅速编制出结构清晰功能明确的控制程序来。
PCC在硬件上的特点,还体现在它为工业现场的各种信号和应用设计了许多专用的接口模块和功能模块,如温度、张力、步进电机驱动、示波器、鼓序列发生、脉冲编码,称重、超声波信号等等。它们将各种形式的现场信号十分方便的接入以PCC为核心的数字控制系统中,用户可按需要对I/O通道进行数十点、数百点至数千点的扩展与联网。在PCC模块内部,CPU的数据总线与IO总线分离,并配置有独立的I/O处理器,特有的时间处理单元(TPU)在不增加CPU负荷的前提下,高速处理无论简单或复杂的定时任务,其基准计时频率可高达6.29MHz,目前被广泛应用于测频测相及PWM等极高精度的时间处理场合中。而其所有数字量输入端都经过了光电耦合隔离,模拟量输入端也都经过了RC滤波处理,具有很好的抗干扰能力,其整体硬件平均无故障时间MTBF高达50万小时。
PCC在远程通信方面的灵活性,是区别于常规PLC的另一显著标志,作为构成现场分布式控制的主要供应商之一,贝加莱PCC为此提供了十分灵活多样的解决方案。除开放式现场总线的网络方案之外,PCC还提供了多种网络协议,用户不仅可以采用贝加莱的独有网络协议,也可以方便的与其他厂家的PLC或其他工控设备联网通信(如Siemens,AB,Modicon等),在一些特殊情况下,PCC还为用户提供了创建自定义协议的帧驱动(Framedrive)工具。特别值得一提是EthernetPOWERbbbb网络协议,这是2001年贝加莱公司在竞争对手还在讨论实时工业以太网概念的时候,便在全球次推出并实用化了真正意义的实时工业以太网络,这也是全球个开放的安全级(SIL3)实时工业以太网。2007年初该公司又已经发布其实现了千兆级实时工业以太网EthernetPOWERbbbb的消息。由于具备这样的技术优势,PCC常常能解决许多常规PLC所望尘莫及的通信难题,轻松实现与各种不同产品,不同通信协议的高效互联。
目前,B&R公司的PCC主要由2005系列、2003系列以及X20CPU系列构成,由于在网络通信方面的开放性和结构上的模块性,三种系列的PCC在构成控制系统的规模上,往往是十分灵活可塑的。也正顺应了PLC、IPC及DCS技术相互融合的发展潮流,贝加莱的PCC控制器携其DCS系统APPROL目前在越来越多的工业应用领域中,日益显示出了其不可低估的发展潜力。
PCC作为一种可编程计算机控制器,它是专为在工业环境下应用而设计的,是一种新型的定性分时多任务PLC,它不但具备传统PLC的所有功能,融合了新的IT网络技术和可选的语言编程环境,具有更强大的数学运算能力、网络通信能力、抗干扰能力和控制能力,从而代表了PLC今后发展的方向,具有更高的可靠性、更丰富的功能和更广泛的适应性。
S7300系列CPU可以处理符合IEEE标准的32位浮点数。可以完成32位浮点数的加、减、乘、除运算,以及取值、平方、开平方、指数、对数、三角函数、反三角函数等指令。
l 基本的浮点数算术运算指令
STL 指令 | FBD符号 | 说 明
|
+R | <[if !vml]> <[endif]> | 将累加器1,2中的32位浮点数相加,32位结果保存在果加器1中。 |
-R | <[if !vml]> <[endif]> | 用累加器2中的32位浮点数减去累加器1中的浮点数,结果保存在累加器1中。 |
*R | <[if !vml]> <[endif]> | 将累加器l,2中的32位浮点数相乘,32位乘积保存在累加器1中。 |
/R | <[if !vml]> <[endif]> | 用累加器2中的32位浮点数除以累加器1中的浮点数,32位商保存在累加器1中。 |
ABS | <[if !vml]> <[endif]> | 对累加器l中的32位浮点数取值。 |
l 扩展的浮点数算术运算指令
STL指令 | FBD符号 | 说 明 |
SQR | <[if !vml]> <[endif]> | 求累加器1中的32位浮点数的平方值。 |
SQRT | <[if !vml]> <[endif]> | 求累加器1中的32位浮点数的开平方值 |
EXP | <[if !vml]> <[endif]> | 求累加器1中的32位浮点数以e为底的指数 |
LN | <[if !vml]> <[endif]> | 求累加器1中的32位浮点数的自然对数 |
SIN | <[if !vml]> <[endif]> | 求累加器1中的32位浮点数的正弦值 |
COS | <[if !vml]> <[endif]> | 求累加器1中的32位浮点数的余弦值 |
TAN | <[if !vml]> <[endif]> | 求累加器1中的32位浮点数的正切值 |
ASIN | <[if !vml]> <[endif]> | 求累加器1中的32位浮点数的反正弦值 |
ACOS | <[if !vml]> <[endif]> | 求累加器1中的32位浮点数的反余弦值 |
ATAN | <[if !vml]> <[endif]> | 求累加器1中的32位浮点数的反正切值 |
指令 | 说 明 |
RND | 将实数化整为接近的整数。 |
RND+ | 将实数化整为大于或等于该实数的小整数 |
RND- | 将实数化整为小于或等于该实数的大整数 |
TRUNC | 取实数的整数部分(截尾取整) |
因为实数的数值范围远大于32位整数,有的实数不能成功地转换为32位整数。如果被转换的实数格式非法或超出了32位整数的表示范围,则在累加器1中得不到有效结果,状态字中的OV和OS被置1。
上面的指令都是将累加器1中的实数化整为32位整数,因化整的规则不同,在累加器1中得到的结果也不一致,如下表
执行的 指令 | 累加器l内容 | 说 明 | |
化整前 | 化整结果 | ||
RND | +99.5 | +100 | 将实数化整为接近的整数 |
RND+ | +99.5 | +100 | 将实数化整为大于或等于该实数的小整数 |
RND- | +99.5 | +99 | 将实数化整为小于或等于该实数的大整数 |
TRUNC | +99.5 | +99 | 只取实数的整数部分(截尾取整) |
指令 | 说 明 |
= =R | 比较累加器2中的32位实数是否等于累加器l中的实数 |
<>R | 比较累加器2中的32位实数是否不等于累加器l中的实数 |
>R | 比较累加器2中的32位实数是否大于累加器1中的实数 |
<R | 比较累加器2中的32位实数是否小于累加器1中的实数 |
>=R | 比较累加器2中的32位实数是否大于等于累加器1中的数 |
<=R | 比较累加器2中的32位实数是否小于等于累加器l中的数 |
例3.5.2:
如果存储双字MD 24中的实数大于1.0,则输出Q 4.1为1;若小于1.0则输出Q 4.2为1。
L MD 24
L +1.359E+02
>R
= Q 4.1 //若(MD24)>+1.359E+02,Q 4.1为1,否则为0
<R
= Q 4.2 //若(MD24)<+1.359E+02,Q 4.2为l,否则为0
例3.5.3
这是一个限值监测程序,当数据字DBWl5的值大于l05时,输出Q 4.0为1;当数据字DBWl5的值小于77时,输出Q4.1为1;数值在77到105范围内时,输出Q 4.0和Q 4.1均为0。下面是与其对应的语句表程序:
L DBW15
L +l05
>I
= Q 4.0
L +77
<I
= Q 4.1