PLC程序设计及编程注意事项
1 引言
可编程序控制器(plc)是以微处理器为基础,综合计算机、通信、联网以及自动控制技术而开发的新一代工业控制装置。可编程序控制器plc在我国的发展与应用已有30多年的历史,现在它已经广泛应用于国民经济的各个工业生产领域,成为提高传统工业装备水平和技术能力的重要设备和强大支柱。随着我国国民经济的全面发展和技术水平的不断提高,可编程序控制器应用领域不断扩大,了解熟悉和掌握plc程序设计语言以及应用软件编程技术,对plc的进一步推广应用和使用维护具有十分重要的作用。
2 plc程序设计语言
根据plc应用范围,程序设计语言可以组合使用,常用的程序设计语言有:梯形图程序设计语言;布尔助记符程序设计语言(语句表);功能表图程序设计语言;功能模块图程序设计语言;结构化语句描述程序设计语言;梯形图与结构化语句描述程序设计语言;布尔助记符与功能表图程序设计语言;布尔助记符与结构化语句描述程序设计语言。
2.1 梯形图(ladder diagram)
程序设计语言梯形图程序设计语言是用梯形图的图形符号来描述程序的一种程序设计语言。采用梯形图程序设计语言,程序采用梯形图的形式描述。这种程序设计语言采用因果关系来描述事件发生的条件和结果。每个梯级是一个因果关系。在梯级中,描述事件发生的条件表示在左面,事件发生的结果表示在后面。梯形图程序设计语言是最常用的一种程序设计语言。它来源于继电器逻辑控制系统的描述。
在工业过程控制领域,电气技术人员对继电器逻辑控制技术较为熟悉,因此,由这种逻辑控制技术发展而来的梯形图受到了欢迎,并得到了广泛的应用。梯形图程序设计语言的特点是:
(1) 与电气操作原理图相对应,具有直观性和对应性。
(2) 与原有继电器逻辑控制技术相一致,对电气技术人员来说,易于撑握和学习。
(3) 与原有的继电器逻辑控制技术的不同点是,梯形图中的能流(power
flow)不是实际意义的电流,内部的继电器也不是实际存在的继电器,因此,应用时,需与原有继电器逻辑控制技术的有关概念区别对待。
(4) 与布尔助记符程序设计语言有一一对应关系,便于相互的转换和程序的检查。
2.2布尔助记符(boolean mnemonic)
程序设计语言布尔助记符程序设计语言是用布尔助记符来描述程序的一种程序设计语言。布尔助记符程序设计语言与计算机中的汇编语言非常相似,采用布尔助记符来表示操作功能。布尔助记符程序设计语言具有下列特点:
(1) 采用助记符来表示操作功能,具有容易记忆,便于撑握的特点。
(2) 在编程器的键盘上采用助记符表示,具有便于操作的特点,可在无计算机的场合进行编程设计。
(3) 与梯形图有一一对应关系。其特点与梯形图语言基本类同。
2.3功能表图(sepuential chart)
程序设计语言功能表图程序设计语言是用功能表图来描述程序的一种程序设计语言。它是近年来发展起来的一种程序设计语言。采用功能表图的描述,控制系统被分为若干个子系统,从功能入手,使系统的操作具有明确的含义,便于设计人员和操作人员设计思想的沟通,便于程序的分工设计和检查调试。功能表图程序设计语言的特点是:
(1) 以功能为主线,条理清楚,便于对程序操作的理解和沟通。
(2) 对大型的程序,可分工设计,采用较为灵活的程序结构,可节省程序设计时间和调试时间。
(3) 常用于系统的规模校大,程序关系较复杂的场合。
(4)只有在活动步的命令和操作被执行,对活动步后的转换进行扫描,因此,整个程序的扫描时间较其他程序编制的程序扫描时间要大大缩短。功能表图来源于佩特利(petri)网,由于它具有图形表达方式,能较简单和清楚地描述并发系统和复杂系统的所有现象,并能对系统中存有的象死锁、不安全等反常现象进行分析和建模,在模型的基础上能直接编程,所以,得到了文泛的应用。
近几年推出的plc和小型集散控制系统中也已提供了采用功能表图描述语言进行编程的软件。学习、了解和掌握佩特利(petri)网的一些基本概念,可以有助于对功能表图的进一步理解。
2.4结构化语句(structured text)
描述程序设计语言结构化语句描述程序设计语言是用结构化的描述语句来描述程序的一种程序设计语言。它是一种类似于高级语言的程序设计语言。在大中型的
plc系统中,常采用结构化语句描述程序设计语言来描述控制系统中各个变量的关系。它也被用于集散控制系统的编程和组态。结构化语句描述程序设计语言采用计算机的描述语句来描述系统中各种变量之间的各种运算关系,完成所需的功能或操作。大多数制造厂商采用的语句描述程序设计语言与basic语言、pascal语言或c语言等高级语言相类似,但为了应用方便,在语句的表达方法及语句的种类等方面都进行了简化。结构化程序设计语言具有下列特点:
(1) 采用高级语言进行编程,可以完成较复杂的控制运算;
(2) 需要有一定的计算机高级程序设计语言的知识和编程技巧,对编程人员的技能要求较高,普通电气人员无法完成;
(3)直观性和易操作性等性能较差;
(4) 常被用于采用功能模块等其他语言较难实现的一些控制功能的实施。
部分plc的制造厂商为用户提供了简单的结构化程序设计语言,它与助记符程序设计语言相似,对程序的步数有一定的限制,同时,提供了与plc间的接口或通信连接程序的编制方式,为用户的应用程序提供了扩展余地。
3 plc程序设计
3.1 plc控制系统的设计步骤
图1为plc控制系统设计步骤图。
图1 plc控制系统设计步骤图
3.2 编程编程语言的选择
在编制plc控制程序设计时,除i/o地址列表外,有时还要把在程序中用到的中间继电器(m)、定时器(t)、计数器(c)和存储单元(v)以及它们有作用或功能列写出来,以便编写程序和阅读程序。在编程语言的选择上,用梯形图编程还是用语句表或使用功能图编程,这主要取决于以下几点:
(1) 有些plc使用梯形图编程不是很方便(如书写不方便),则可用语句表编程,但梯形图总比语句表直观。
(2) 经验丰富的人员可用语句表直接编程,就像使用汇编语言一样。
(3) 如果是清晰的单顺序、选择顺序或并发顺序的控制任务,则最好用功能图来编程设计程序。
3.3 编程注意事项
(1) 设计可编程控制器时,
安全性是第一重要的,即使在外部的电源发生异常时,可编程控制器出现故障时,整个系统也能在安全状态下工作,应在可编程控制器外部,设置如下几中安全电路:紧急停止电路,保护电路,正转逆转等相反操作的连锁电路,定位的上限/下线等防止损坏的连锁电路等,以防止误操作产生故障。
(2)编程要理论联系实践。从最简单的做起,循序渐进。例如说学习西门子plc编程最开始可以先编写些只包括数字量的,然后再考虑模拟量的,另外像计时器、计数器也经常使用等。
(3)在一段程序里不可有同样的两个输出存在。比如说前段程序有1个输出q0.0存在,后面就不要再有了,除非是做子函数,而且要保证主函数和子函数里的输出也不能重复,否则plc只考虑后者。
(4)数字量输出分为继电器输出和晶体管输出两种:前者电流大,后者速度快。要考虑电源容量问题,如果容量小了,那么plc在输出后电压不够,输出也就停了,然后,电压又够了plc又输出了,电压又不够输出又停,外表特征就是设备反复启动反复停止。这和程序无关。
(5)用步进指令设计梯形图时,要注意plc初始状态继电器的设置。一般plc的状态继电器分有初始状态继电器、回零状态继电器、一般状态继电器、保持状态继电器和报警状态继电器。状态继电器的使用不受限制,当状态继电器不用于步进顺序控制时,它也可作为辅助继电器使用。
(6)使用梯形图编程时,应把串联多的电路块尽量放在最上边,把并联多的电路块尽量放在最左边,这样即节省指令,又美观。在同一程序中,同一编号的线圈使用两次及两次以上称为双线圈,双圈非常容易引起误动作,应避免使用。触点应画在水平线上,不包含触点的分支线条应放在垂直方向,不要放在水平方向,以便于读图和图形的美观。线圈和指令盒一般不能直接连接在左边的母线上,如需要的话可通过特殊的继电器完成。
(7)采用什么品牌的plc完全依据个人喜好,不同的plc只是语法有些差异,只要会一种以后另一种也就会了。总之就是一句话,如果想编plc程序设计就要多学多练。
(8)编程完成后,要进行室内模拟调试,可借助模拟开关和plc输出端的输出指示灯进行。需要模拟信号i/o时,可用电位器和万用表配合进行。调试时,可利用外围设备模拟各种现场开关和传感器状态,然后观察plc输出逻辑是否正确。目前的plc产品都可在pc机上编程,并进行直接模拟调试。
(9)联机调试时,可把编好的程序下载到plc中。调试时一定要先将主电路断开,只对控制电路进行调试,若通过联调信号接入发现有软硬件中的问题,对问题进行整改,并反复测试系统无误后,才能投入交付使用。
4 结束语
plc程序设计工作,除了要熟悉和掌握plc程序设计语言及其控制电路的工作原理外,更重要的是要靠平时更多的编程实践和应用经验的不断积累,才能正真提高编程人员的技术水平,才能更好地掌握编程技巧和程序设计方法,满足生产实际工作的需要。
文章版权归西部工控xbgk所有,未经许可不得转载。