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) 显现使命:显现使命经过串口与智能型液晶显现触摸屏通讯,完结当地数据显现和操作功用,包含显现测点信息、事端一览表、光字、模件状况等,并能宣布操控指令、设置定值、整定参数等;
(13) 串口使命:串口使命完结与外部设备通讯功用,完结与外部设备的数据和指令的沟通,如GPS、温度巡检设备、沟通收集设备等等。支撑Modbus规范规约,必要时可根据需求编程完结特别规约。
3.2 使命间通讯
使命间通讯机制是多使命间彼此同步和通讯,以和谐各自活动的首要手法。VxWorks供给的使命间通讯手法按其速度由快到慢依次是信号量、音讯行列、管道和套接字。常用的通讯机制是信号量和音讯行列,套接字(Socket)用于网络编程。
(1) 信号量
信号量是完结使命互斥、同步操作的首要机制,VxWorks供给的信号量经过了高度优化,在所有使命间通讯机制中,速度最快。关于互斥,信号量能够上锁对共享资源的拜访,而且比制止间断或制止抢占供给更准确的互斥粒度。关于同步,信号量能够和谐外部事情与使命的履行。
MBPLC运用二进制信号量来处理多个使命读写数据的互斥问题,运用计数器信号量来处理守时器计数问题;
(2) 音讯行列
音讯行列是VxWorks供给的单CPU中使命间通讯的首要机制。音讯行列答应以FIFO或根据优先级方法排队音讯,音讯的数目可变,音讯的长度可变。任何使命都能够向音讯行列发送音讯,也能够从音讯行列接纳音讯。多个使命答应从一个音讯行列收发音讯。可是,两个使命间的双向通讯一般需求两个音讯行列,各自用于一个方向。
MBPLC运用音讯行列来完结使命间的数据沟通。首要调用msgQCreate()函数创立音讯行列,再用msgQSend()和msgQReceive()函数发送和承受音讯,最终调用msgQDelete()函数间断音讯行列。
3.3 间断处理程序
间断处理程序是实时体系的重要组成部分。体系经过间断机制了解外部国际,并对外部事情作出呼应。实时体系的反响取决于体系关于间断的呼应速度和间断处理程序的处理速度。因为在很短的时刻内,或许发生许多间断,高优先级的间断将堵塞低优先级的间断,因而,有必要使间断处理程序的处理时刻最短。
MBPLC的间断包含秒间断、分同步间断、CAN网间断以及BSP级的以太网间断、硬盘间断等等。下面以秒间断(间断级别为5)为例阐明间断的运用办法:
ntConnect(INUM_TO_IVEC(INT_VEC_GET(5)), SECISR, 0);
sysIntEnablePIC(5);
这两个函数用于将间断处理程序SECISR()与秒间断相关联,存放于间断向量表的对应表项中,当秒间断事情呈现时,VxWorks内核将调用间断处理程序。这时可运用间断处理程序开释一个信号量(经过semGive()函数),经过该信号量驱动相应的数据处理模块(经过sem- Take()函数),然后完结实时操作。
此外,咱们还运用intLock()函数和intUnlock()函数来设置间断屏蔽,用以保证受维护的代码在履行进程中不受间断的搅扰。
3.4 网络通讯
网络通讯一般可经过套接口(socket)完结。Vx- Works供给了规范的BSD socket调用,具有两种类型:Stream socket(全双工流类型)、Datagram socket(数据报类型)。前者支撑TCP协议,后者支撑UDP协议。任何一个使命都能够翻开一或多个socket,其它使命的socket可与之衔接。
客户端程序首要调用socket()函数发生用于与各分体系衔接的套接字,然后初始化一个套接口结构体,为其赋上服务端的IP地址和端口号,并将其作为函数connect()的参数,调用connect()函数主动去衔接服务器端。衔接成功后,用send()和recv()函数读写数据,直到悉数数据都沟通完,再用close()函数封闭套接口。
服务器端也先用socket()函数树立套接口,再调用bind()函数将本身IP和端口号绑定,以保证客户端正确辨认,然后用listen()函数指明已准备好承受来自客户端的衔接,又用accpet()函数承受一个衔接恳求,承受后用send()和recv()函数来传输数据,直到悉数数据都沟通完,再用close()函数封闭套接口。为了保证服务器能够实时接纳客户端的数据,当服务端与客户端树立衔接之后,有必要嵌入循环,运用recv()函数不断等候客户数据。一起客户端每次发送数据之后也应等候服务端回复,树立握手机制。
3.5 串行口通讯
在VxWorks中,将I/O体系规划成为任何类型的设备,供给一个简略、一致、独立于设备的接口,任何关于串行口的操作依然能够视为对一个文件的操作,而不用了解关于设备或程序驱动完结的细节。在运用串口之前运用open()翻开相应串口,再用ioctl()设置波特率、数据位、中止位、奇偶校验等特点,然后根据串口翻开时的读写标志,调用函数write()、read()对串口进行只读操作、只写操作或一起进行读写操作,最终用close()封闭串口。
关于串口通讯,依然要关怀数据接纳的实时性。可选用间断方法,运用VxWorks供给的select()函数的事情触发机制,将读串口的使命堵塞使其一向等候数据,当有数据来到的时分该使命会马上主动呼应,进步体系的实时性。
4、结束语
嵌入式实时操作体系VxWorks及其开发环境的引进,大大简化了可编程操控器软件规划的杂乱性,缩短了开发周期,进步了产品的实时性和牢靠性。因而,VxWorks RTOS在MB系列智能可编程操控器中的运用是成功的。MB系列智能可编程操控器作为新一代的PLC产品,信任能在电力、化工、工业进程操控、城市及楼宇主动化等各种杂乱操控范畴发挥更大的优势,使这些职业的主动化水平得到更大的进步。
责任编辑:gt