可编程序控制器除了硬件系统外还需要软件系统的支持,它们相辅相成,缺一不可,共同构成可编程序控制器。可编程序控制器的软件系统由系统程序(又称系统软件)和用户程序(又称应用软件)两大部分组成。1.系统程序
系统程序由可编程序控制器的制造厂编制,固化在PROM或EPROM中,安装在可编程序控制器上,随产品提供给用户。系统程序包括系统管理程序、用户指令解释程序和供系统调用的标准程序模块等。
1)系统管理程序
系统管理程序的主要功能如下。
(1)时间分配的运行管理,即控制可编程序控制器输入/输出运算、自检及通信时序。
(2)存储空间的分配管理,即生成用户环境,规定各种参数、程序的存放地址,将用户使用的数据参数存储地址转化为实际的数据格式及物理存放地址。
(3)系统的自检程序,即对系统进行出错检验、用户程序语法检验、句法检验、警戒时钟运行等。在系统管理程序的控制下,整个可编程序控制器能正确、有效地工作。
2)用户指令解释程序
用户指令解释程序将用户用各种编程语言(梯形图、语句表等)编制的应用程序翻译成中央处理单元能执行的机器指令。
3)供系统调用的标准程序模块
供系统调用的标准程序模块是由许多独立的程序块组成的,各自完成包括输入、输出、特殊运算等不同的功能。可编程序控制器的各种具体工作都由这部分完成。
现货西门子S7-200模块ST60
现货西门子S7-200模块ST60
由于通过改进系统程序可以在不改变硬件系统的情况下大大改善可编程序控制器的性能,所以制造厂商对系统程序的编制极为重视,其产品的系统程序也在不断升级和完善。2.用户程序
用户程序是根据生产过程控制的要求由用户使用制造厂商提供的编程语言自行编制的应用程序。用户程序包括开关量逻辑控制程序、模拟量运算程序、闭环控制程序和操作站系统应用程序等。
(1)开关量逻辑控制程序是可编程序控制器用户程序中重要的一部分,一般采用梯形图、助记符或功能表图等编程语言编制,不同可编程序控制器的制造厂商提供的编程语言的形式不同,至今还没有一种能全部兼容的编程语言。
(2)模拟量运算程序及闭环控制程序通常是在大中型可编程序控制器上实施的程序,由用户根据需要按可编程序控制器提供的软件和硬件功能进行编制。编程语言一般采用语言或汇编语言,一些制造厂商为方便用户编程,也有提供相应编程软件供用户进行编制模拟量运算和PID控制等程序。
(3)操作站系统应用程序是大型可编程序控制器系统经过通信联网后由用户为进行信息交换和管理而编制的程序。它包括各类画面的操作显示程序,一般采用语言实现,一些制造厂商也提供了人机界面的有关软件,用户可以根据制造厂商提供的软件使用说明进行操作站的系统画面组态和编制相应的应用程序。
1.3.3 可编程序控制器的工作原理1.可编程序控制器的工作过程
可编程序控制器上电后就在系统程序的监控下周而复始地按固定顺序对系统内部各种任务进行查询、判断和执行,这个过程实质上是一个不断循环的顺序扫描过程。一个循环扫描过程称为扫描周期。
可编程序控制器采用周期扫描机制,简化了程序设计,提高了系统的可靠性。具体表现在:在一个扫描周期内,前面执行的任务结果马上就可被后面将要执行的任务所用;可以通过设定一个监视定时器来监视每个扫描周期的时间是否超过规定值来避免某个任务进入死循环而引起的故障。
可编程序控制器在一个扫描周期内基本上要执行以下6个任务。
(1)运行监控任务。为了保证系统可靠工作,可编程序控制器内部设置了系统定时计时器WDT(Watch Dog Timer),由它来监视扫描周期是否超时。可编程序控制器在每个扫描周期内都要对WDT进行复位操作,如果不能执行该任务,则WDT的计时会超过设定值,也就是扫描周期超过了规定时间,这表明系统的硬件或用户软件发生了故障。当WDT超时后,它会自动发出故障报警信号,并停止可编程序控制器的运行。WDT的时间设定值一般为扫描周期的2~3倍,通常在l00~200ms之间,很多可编程序控制器可以由用户根据实际应用情况通过硬件或软件来设定。
(2)与编程器交换信息任务。编程器是可编程序控制器的外部设备,它与主机的外部设备接口相连。作为编制、调试用户程序的外部设备,编程器在可编程序控制器的外部设备中占有非常重要的地位,所以在主机的扫描周期中把与编程器交换信息的任务单独列出而不包括在与外部设备信息交换的任务中。编程器是人机交互的设备,用户把应用程序输入到可编程序控制器中,或对应用程序进行在线运行监视和修改都要用到它。这就要求可编程序控制器能与编程器进行信息交换。当可编程序控制器执行到与编程器交换信息任务时,就把系统的控制权交给编程器,并启动信息交换的定时器。在编程器取得控制权后,用户就可以利用它来修改内存中的应用程序对系统的工作状态进行修改,如读微处理器的状态、读或写数字变量和逻辑变量、封锁或开放输入/输出,以及控制微处理器等。编程器在完成处理任务或达到信息交换的规定时间后就把控制权交还给可编程序控制器。在每个扫描周期内都要执行此项任务。