远程I/O系统是一种独立的与程序扫描不同步的扫描。远程I/O扫描从远程I/O缓冲区取输出数据送给输出模块,并将来自输入模块的输入数据放入远程I/O缓冲区;然后CPU在I/O扫描期间,再与远程I/O缓冲区进行输入和输出映像表数据的交换。
机器在正常运行状态下,每一个扫描周期都包含I/O扫描与用户程序扫描(逻辑扫描),而这两个过程在机器运行过程中所用的时间往往是可变的。特别对程序中有条件调用和子程序调用等情况,程序中指令数目难于确定,因此通常用执行1000条指令的时间(大约1~10ms/k指令)来衡量PLC的运行速度。
(4)指令功能及软件支持
*初的PLC只是一些简单的开关量逻辑控制器件,而且其控制数目有限,因此只有基本的输入/输出及程序控制指令,编程设备也很简陋。但可编程序控制器发展到现在,不仅其I/O能力大大增强,且实现了对模拟量的各种控制,其指令系统也得到了充分的发展,变得相当完善。如S7-300系列可编程序控制器的指令系统包括继电器指令、定时器和计数器、计算指令(包括三角函数、指数、幂运算等)、数据转换、诊断、移位寄存器、比较、数据传送、顺序器、立即I/O、程序控制和PID控制,以及顺序功能流程图指令等,是指令功能*强的可编程序控制器之一。
在可编程序控制器不断发展、指令功能不断增强的同时,其开发手段也从早期的专用编程设备移到计算机上进行;计算机开发环境也从DOS转到Win98//XP/NT上,从而变得更加易于使用。除编程软件外,还有仿真软件,这使PLC的开发、调试可以在一台计算机上完成,缩短了应用系统的开发时间。通常在选择PLC时,不但要考虑PLC本身是否适合应用,同时还要考虑相应的开发环境及软件是否易用。
PLC的存储器由系统存储器和用户存储器两部分组成。系统存储器用来存放不可改变和访问的系统程序,用户存储器用来存放用户程序及所需要的数据。它包括程序存储器和数据存储器。数字输入/输出量在数据存储器中建立的文件分别称为输入/输出映像文件,也叫输入/输出映像表。模拟输入/输出量通常在数据存储器中建立块传送文件。生产厂家在生产PLC时,已经按照机器型号的不同,设置了不同容量的存储器,小至1KB到几KB,大至1~2MB。用户可根据控制对象的复杂程度不同,预估所需容量,进而选择机型。在16位PLC中,存储器容量通常以字(不是字节)为基本单位,而在32位PLC处理器中,存储容量常以字节计。
(2)控制容量
PLC的控制容量就是I/O容量,也叫I/O能力,通常以离散量(数字量)个数计。不同的PLC的I/O容量的差别很大,一些微型的PLC的I/O能力在20点以下,而大型PLC的I/O能力可达10KB以上。由于I/O容量大小与存储容量的大小基本一致,生产厂家在生产PLC时,常以I/O容量的大小来设置不同的存储器容量。I/O模块、数据存储器与程序存储器之间的关系如图1-62所示。
(3)循环扫描周期
PLC 扫描周期也叫处理器扫描时间。通常将输入扫描与输出扫描合称为 I/O 扫描,因此处理器扫描时间为 I/O 扫描与程序扫描(逻辑扫描)之和。I/O 扫描时间是指处理器把其输出映像表中的数据写到输出模块和把输入数据从输入模块读到处理器输入映像数据表的时间。当处理器完成了系统中所有的 I/O 刷新后,就开始逻辑扫描。逻辑扫描是执行用户程序的时间,程序指令对某些条件进行检查并将该条件与输入映像表中的位相比较。如果映像表中的位与被检查的条件相符,则逻辑为真,处理器就刷新输出映像表中相应的位,这个过程将连续不断地进行,直至执行到逻辑扫描的结束语句为止。这时开始I/O扫描。
在I/O扫描期间,处理器将完成内务处理和离散数据传送两项工作。内务处理时间(一般不大于4.5ms)包括处理器的内部检查:用输出映像表数据刷新处理器基本框架上驻留本地I/O输出模块;用输出映像表的数据刷新远程I/O缓冲区;用处理器基本框架内的I/O输入状态刷新输入映像表;用存放在远程I/O缓冲区的远程I/O输入状态刷新输入映像表。在完成内务处理之后,处理器将进行扩展本地I/O框架(如果存在)的扫描:扩展本地I/O的离散数据在处理器数据映像表和扩展本地I/O框架中的I/O之间进行交换;扫描扩展本地I/O框架所需要的时间加上内务处理时间就是总的I/O扫描时间。
在可编程序控制器系统中,用户程序是循环扫描反复执行的。中断程序却不是每次扫描用户程序都要执行的,它只在中断申请被接受后执行一次,也就是说,中断申请只能使系统迅速去执行一次中断程序,而与中断程序中有关信息的状态及中断程序执行的结果无关,因此要想多运行几次中断子程序,则必须多进行几次中断申请。
浔之漫智控技术(上海)有限公司
本公司是西门子授权代理商 自动化产品,全新,西门子PLC,西门子屏,西门子数控,西门子软启动,西门子以太网西门子电机,西门子变频器,西门子直流调速器,西门子电线电缆我公司**供应,德国进口
(3)中断源先后排队顺序问题。在可编程序控制器系统中,中断源的信息是通过输入点而进入系统的,可编程序控制器扫描输入点是按顺序进行的,因此,中断源的先后顺序随它们占用的输入点编号的前后就自动排了顺序,因此在分配输入点时考虑一下中断源的主要性就可以解决中断源的排队问题。系统接到中断申请后,顺序扫描中断源,可能只有一个中断源申请中断,也可能同时有2个或多个中断源提出中断申请。系统在扫描中断源的过程中,就在存储器的一个特定区建立起“中断处理表”,按顺序存放中断信息,中断源被扫描过后,中断处理表亦建立完毕,系统就按照该表顺序先后转至相应的中断子程序入口地址。
在可编程序控制器系统中,中断程序的编制与一般微机系统基本一致。允许中断、禁止中断指令的使用,中断源与中断服务程序的对应关系等都是一样的,稍有不同的地方是:
① 在可编程序控制器系统中,多中断源可以有优先顺序(前面已指出可以通过占用输入点号来排队),根据处理器类型的不同可分为有嵌套关系和无嵌套关系两种,即中断程序执行中,如果系统处于允许中断的状态,若有新的中断发生,可以读取锁存器输出,确定中断输入源,有中断嵌套关系的处理器根据它们的优先顺序,若新中断的优先级高则将现在执行的中断挂起去执行新的中断;但无嵌套关系的处理器不论它们的优先顺序如何,都是将执行中的中断处理结束后,再进行新的中断处理。
② 在中断子程序结束后,返回主程序的方法有两种:其一是中断子程序正常结束,遇到中断处理结束指令(IEND);其二是遇到符合条件的中断处理中断指令(RETI),上述指令放在中断程序中的哪部分,只能根据该程序的具体情况而定。