1 引言
可编程控制器在PLC长期的使用过程中也逐渐暴露出了诸如开出回路简单;通信扩展能力差;梯形图语言编程烦琐;调试不够方便等技术局限。伴随着计算机技术、信息技术及工业控制技术的飞速发展,对PLC的发展提出了更高要求,主要体现在:需要更高功能、更快速度、更大容量的PLC产品,以完成大型的控制项目和实现网络化及更强的通讯能力;要求控制更加可靠,性能更加稳定;要求提供多样化的更方便的编程语言等。
为此,南京南瑞自动控制有限公司研制出新一代MB系列智能可编程控制器,它继承了传统PLC的优点,又弥补了传统PLC的技术薄弱环节,是对传统PLC功能的极大提升。该产品集智能、可靠、开放、灵活于一身,适合多种复杂控制领域的应用。
2 MB系列智能可编程控制器设计
2.1 MB系列智能可编程控制器结构
MB系列智能可编程控制器采用LAN/FieldBus系统体系结构,提供标准的以太网接口完成与上位机系统的通信。主控模件与智能I/O模件之间采用现场总线CAN作为内部总线及扩展总线,现场总线特有的高可靠性和对现场环境的适应能力,使得MB系列智能可编程控制器系统配置的灵活性和可靠性大大提高。图1为双主控热备冗余模式下的体系结构。
图1 MB系列智能可编程控制器体系结构
在INTEL x86硬件平台上,应用WindRiver公司的Tornado集成开发环境,实现基于VxWorks的可编程控制器。
2.2 MB系列智能可编程控制器特点
(1) 高性能的主控模件:高档的软硬件配置使得主控模件具有强大的数据处理能力、运算能力以及通讯处理能力;
(2) 开放的标准的以太网通信接口:对外提供10/100M以太网接口,支持Modbus/TCP协议,可与上位机及各种监控软件互连;
(3) 先进的现场总线网络:采用现场总线CAN网,具有通讯速率快、抗干扰能力强、成本低、结构简单、扩展灵活、实时性好等特点,为系统扩展及远程控制提供了方便;
(4) 强大的串口通讯功能:提供了串口通讯模件,可自由配置,可方便地与其他智能设备通讯;
(5) 高可靠的热备冗余方案:支持双CPU、双以太网、双电源的热备冗余方案,自动实时备份数据;
(6) MB系列不同型号PLC之间方便灵活的互连:可实现不同PLC之间的无缝连接,无需任何扩展模件,节省系统成本;
(7) 全智能I/O设计和一系列安全性、可靠性设计为系统的安全可靠运行提供了保障:开关量输入模件的光电隔离和软件滤波功能;开关量输出模件的反读、校核及执行继电器的联合控制确保在任何情况下不会发生误动;温度量输入模件先进的每路独立横流源设计大大提高了采集速度和抗干扰性;模拟量输入模件飞度电容的设计方法保证了内部电路和外界干扰的绝对隔离,大大提高了采集精度,最大限度地降低了模拟量漂移;
(8) 界面友好、使用简单的编程软件
灵活的梯形图编程语言及更多更丰富的梯形功能模块;全汉化的梯形图设计大大提高了梯形图程序的可读性;直观的可视化流程图编程语言,使复杂控制流程的实现变得非常简单;模块化程序结构,程序之间可相互调用;支持远程编程和调试;
(9) 直接的GPS同步时钟接口
直接提供GPS同步时钟接口,无需编程及设置,硬件对时可达模件级,SOE事件信息更加精确、可靠;
(10) 方便实用的现地人机接口
提供了与触摸屏的串行通讯接口,支持Modbus通讯协议,可与多种触摸屏直接连接,无需增加辅助设备,也无需编写通讯驱动程序。
2.3 操作系统和开发环境
为保证软件的可靠性和发挥装置的实时性能,项目采用了国际上最广泛使用的32位实时操作系统VxWorks。VxWorks是专门为嵌入式微处理器而设计的模块化、高性能、实时的操作系统。VxWorks是目前世界上用户数量最大的实时操作系统,具有丰富的应用软件支持、良好的技术服务、可伸缩性、可裁减性和可靠的系统稳定性。VxWorks的开放式结构和对工业标准的支持使开发者只需做最少的工作即可设计有效的适合于不同用户要求的实时操作系统。
VxWorks的开发环境是WindRiver(风河)公司提供的Tornado。Tornado采用主机-目标机开发方式,主机系统采用运行Windows2000/NT的工作站或PC,VxWorks则运行在x86等目标处理器上。Tornado提供了友好的可视化开发界面、交叉编译环境、源码级调试工具、目标机命令解释器和目标机状态监视器等多种应用工具,为应用软件开发提供了一个高效而可靠的平台。
3 关键技术
MB系列智能可编程控制器的软件设计,关键是软件实时性的保证,其中包括任务的划分、任务间通信机制的选择、中断处理程序、网络通信程序和串行口通信程序的编写等关键技术。
3.1 任务划分
嵌入式实时系统中,任务的合理划分对系统的实时性至关重要。进行任务划分时,首先要分析数据流程图中数据的转换,确定哪些数据转换可以并行执行,哪些必须顺序执行。决定应用系统任务划分的最主要的因素是系统所实现的功能之间的异步关系,具体可以从I/O功能和系统内部功能两个方面来考虑。
VxWorks的实时内核Wind默认采用了基于任务优先级的抢占式调度算法,同时,也支持轮转调度算法。Wind内核有256个优先级,编号0~255,优先级0最高,255最低。任务的创建使用taskSpawn()函数来实现。
MBPLC根据功能和优先级划分为以下若干任务:
(1) 主任务:主任务负责硬件初始化、数据库初始化、梯形初始化、流程初始化、网络初始化等工作,并根据数据库的定义创建相应的任务;
(2) CAN1任务:CAN1任务主要完成CAN1网驱动、与I/O模件交换信文等功能,它既可以向I/O模件下发加载、设值、设时、查询等信文,又能接收I/O模件上送的测值、事件等信文,并对数据库进行相应的处理;
(3) 以太网任务:以太网任务主要完成以太网驱动、信文收发等功能,实现PLC与上位机的数据和控制命令的传递,支持标准MODBUS/TCP协议;
(4) CAN2任务:CAN2任务主要完成CAN2网驱动、与外部设备(如通讯装置、保护装置、励磁装置、调速器等等)的信息和控制命令的传递功能。只要外部设备支持CAN接口,就很容易接入PLC中;
(5) 流程任务:流程任务提供了独特的顺序控制流程执行方法,将MBPro编程软件产生的汇编代码进行执行,通过访问数据库得到数据,描述一定的判断和闭锁条件,产生相应的动作,并将运算结果写至数据库中,同时还可将实时执行的各种信息反馈到调试机,以便监视流程的执行情况。流程图是顺序执行的,适于顺控操作,如机组正常开停机控制、紧急停机控制等;
(6) 梯形任务:梯形任务提供了梯形图执行方法,将MBPro编程软件产生的汇编代码进行执行,通过访问数据库得到数据,实现一定的判断和闭锁条件,产生相应的动作,并将运算结果写至数据库中,同时还可将实时执行的各种信息反馈到调试机,以便监视梯形的执行情况。梯形图是循环扫描的,适于逻辑控制及状态控制,可用于主程序、通讯、数据处理、控制启动,如机组状态判断等;
(7) 调节任务:调节任务负责对机组有功、无功进行PID闭环调节,可进行负荷增减、调节投退、调节条件限制、调节增减限制、调节超时判断、调节速度限制等;
(8) 时钟任务:时钟任务管理PLC时钟,处理分同步信号,并定时进行一些硬件操作,如点运行灯;
(9) 自检任务:自检任务自动诊断各类任务、设备的运行情况并进行报警。当PLC因某种干扰或硬件故障等原因发生运行紊乱或死机时,Watchdog能产生自恢复信号,使PLC自动重新恢复运行;
(10) 调试任务:调试任务通过以太网与调试机通讯,负责与编程软件MBPro交换信息,包括上送实时数据、SOE事件、流程报警信息等,并可修改数据库、梯形图及流程图,进行对时、复位、主从切换等操作;
(11) 双机任务:双机任务实现主从机的自动、手动切换,并能通过内部高速网备份对侧重要数据。当主机的某些重要设备或任务出现故障时,从机能自动升为主机;
(12) 显示任务:显示任务通过串口与智能型液晶显示触摸屏通讯,完成当地数据显示和操作功能,包括显示测点信息、事故一览表、光字、模件状态等<