西门子SMART200总代理 西门子SMART200总代理 西门子SMART200总代理



联锁是拒绝非法操作常用的手段,继电电路常用这个方法,PLC也可继承这个方法。

5. 易改性

要使程序易改,也就是要便于修改。

PLC的特点之一就是方便,可灵活地适用于各种情况。其办法就是靠修改或重新设计程序。

重新设计程序用于改变PLC工艺的用途要求的情况,不仅程序重编,而且I/O也要重新分配。多数情况下不需要重编程序,作一些修改就可以了。这就要求程序具有易性,便于修改。

易改也就是弹性,要求只要作很少的改动,即可达到改变参数或理改动作的目的。

6. 扩展性

许多程序可能在进现场之前都已经编好,但是到了现场,可能还需要添加另外的程序,为了避免打乱整套系统的结构,需要在每个功能区预留一定的空间作为备用。

硬件上留出足够的余量,软件在编写的时候把手动,自动,半自动考虑好,位置留出来。

7. 完备报警系统

PLC系统往往用于工业环境中,每的事故都会造成或大或小的损失,为了做到事故预处理或者在事故中将损失降到,必须重视PLC的报警和保护,在此将其摘出来作为系统的一个重要组成部分。

8. 程序模拟

为了保证现场的调试进度或者给客户展示,往往在进现场之前,要对自己的程序进行全自动的模拟。为此需要在程序中加入模拟程序部分,模拟程序部分在正常现场运行之后断开。为了使程序具备模拟功能,需要做以下工作:

(1)、将实际的PLC的I/O点转换为PLC的中间变量或者数据块变量;

(2)、根据工艺要求编写各个设备的模拟程序。

在设计PLC程序的过程中,能够满足以上几个方面的要求的就能称的上是一个好程序了。

PLC程序设计规范

1、选择合适的PLC型号及I/O点数,有特殊功能需求时选择特殊功能模块。

2、熟悉所选择的PLC编程指令及编译软件。

3、进行软元件规划,包括内部继电器、保持继电器、数据寄存器、定时器、计数器等。

4、进行程序规划,一般以故障提取、故障处理、手动处理、自动处理、输出处理这样的顺序进行编程。比较大型的工程或设备按功能单元分段、分块进行处理,如一条自动化生产线中有提升机、移行、顶起旋转装置等,则应按上述单元分段分块编程。

5、在分段分块编写的程序前应加上简短的段注释,说明此段程序的功能,如有必要可以注明相应的工艺流程。分块或分段的程序再总体程序的位置顺序应基本上按工艺流程顺序排列,便于程序的可读性。

6、在程序设计之前,应对设备进行抽象,对如停止、急停、过载、超限、超时、安全光幕、碰停、门开关等共用因子进行提取,放在启动回路或启动主控、连锁回路,作为整个程序结构的大前提,在此基础下,再将程序分为自动、手动两大功能区。

7、将程序结构手动功能区共用因子,如手动、危及设备人身安全等因数因子进行提取,放在手动主控、连锁回路,对手动控制进行保护、屏蔽、报警。

8、将程序结构自动功能区共用因子,如自动、超限、超时等因数因子进行提取,放在自动主控、连锁回路,对自动控制下设备进行保护、屏蔽、报警。一个总的原则就是,在确保安全的前提下,严格限制设备的进,宽松限制设备的出。

9、程序设计时应设计程序总复位功能,便于使用者在设备出现故障情况下,可以方便尽快恢复设备正常工作。总复位应充分考虑在复位过程中设备和人员的安全。

10、自动模式切换到手动模式时,程序应清除自动模式下的输出和中间状态。特别是在自动模式使用SET指令时,必须在手动模式用RESET指令予以清除。

11、严禁在编制程序中使用双输出,即同一条输出语句或同一个输出线圈在程序中出现2次及以上。在不同模式条件下的对同一输出点的输出使用中间继电器进行中转,集中到一起并列到输出点。

12、使用触摸屏时,对触摸屏和PLC公用的控制区和状态区,不得做其他功能方面的编程使用。

13、对PLC的特殊模块,在使用之前,应先查明其控制区和状态区是否占用工作字,若占用,不得将这些工作字做其他方面的编程。

14、PLC的输入、输出、中间继电器、定时器、计数器、数据寄存器等都要加中文注释。输入、输出还要有元器件名称位号。对应的输入点,一般情况下默认为外围开关连接的是NO触点,对于需要接NC触点的须在注释中标明。所有注释应当清晰明了,不易产生误解,尽量少使用泛指。

15、工程调试完成后,系统必须保留终软件程序,保存的文件名应包含项目编号/作者/日期信息/版本号等。

16、关于程序加密:对于加密程序的密码必须有专门的文件予以保存,并注明相应的用户名+密码+权限,分发给至少两个人以上了解密码,防止密码丢失带来无法打开程序的情况。

编程建议

1、PLC和上位机(或触摸屏)组成监控系统时,在画面上很多时候需要有“手动”、“自动”等控制模式(一般都是多个只能一个时)。在程序里面可以用“MOV”指令。如:当选择“手动”就将常数1 MOV到一个寄存器VB10里面,当选择“自动”就将2 MOV到同一寄存器VB10。只要判断寄存器的数据是多少,就知道系统是那种控制方式。这样的思路好处是容易理解,不需要互锁之类的麻烦程序。

2、程序有模拟量控制时,如果读取的模拟量基本上没误差,可以采取时间滤波的方式,延时一段时间。如果读取的数据误差很大,就需要采取其它的滤波方式,如算平均值等。可以查阅相关的资料。

3、在程序调试过程中(特别是设备改造时,你的程序是加入到原来设备的程序中时),当程序语句中出现条件满足,而输出线圈不接通时,可以检查你的这段程序是否是在这样的语句之间,如JUMPgo to等语句。还有一种可能就是在中断程序之后,条件满足而没输出不接通,一般都是这段的程序不被扫描。