A. PLC常用的编程语言有哪几种
1、梯形图编程:优点是形象、直观和实用,为广大电气技术人员所熟知,是PLC的主要编程语言。2、指令语句表语言:类似于微机中的助记符语言,它是可编程控制器最基础的编程语言。所谓指令语句表编程,是用一个或几个容易记忆的字符来代表可编程控制器的某种操作功能。每个生产厂家使用的助记符是各不相同的,因此同一个梯形图书写的语句形式不尽相同。语句是用户程序的基础单元,每个控制功能由一个或多个语句的用户程序来执行。每条语句是规定CPU如何动作的指令,它的作用和微机的指令一样,而且PLC的语句也是由操作码和操作数组成的,故其表达式也和微机指令类似。3、顺序功能流程图:一种较新的编程方法。它的作用是用功能图来表达一个顺序控制过程。使用SFC作为一种步进控制语言,用这种语言可以对一个控制过程进行控制,并显示该过程的状态。将用户应用的逻辑分成步和转换条件,来代替一个长的梯形图程序。这些步和转换条件的显示,使用户可以看到在某个给定时间中机器过程处于什么状态。
B. PLC用什么语言编程
1引言 在PLC中有多种程序设计语言,如梯形图语言、布尔助记符语言、功能表图语言、功能模块图语言及结构化语句描述语言等。梯形图语言和布尔助记符语言是基本程序设计语言,它通常由一系列指令组成,用这些指令可以完成大多数简单的控制功能,例如,代替继电器、计数器、计时器完成顺序控制和逻辑控制等。通过扩展或增强指令集,它们也能执行其它的基本操作。功能表图语言和语句描述语言是高级的程序设计语言,它可根据需要去执行更有效的操作,例如,模拟量的控制,数据的操纵,报表的报印和其他基本程序设计语言无法完成的功能。功能模块图语言采用功能模块图的形式,通过软连接的方式完成所要求的控制功能,它不仅在PLC中得到了广泛的应用,在集散控制系统的编程和组态时也常常被采用。由于它具有连接方便、操作简单、易于掌握等特点,为广大工程设计和应用人员所喜爱。 2 常用的程序设计语言分类
根据PLC应用范围,程序设计语言可以组合使用,常用的程序设计语言有以下几种:
(1) 梯形图(Ladder Diagram)程序设计语言
梯形图程序设计语言是用梯形图的图形符号来描述程序的一种程序设计语言。采用梯形图程序设计语言,这种程序设计语言采用因果关系来描述事件发生的条件和结果,每个梯级是一个因果关系。在梯级中,描述事件发生的条件表示在左面,事件发生的结果表示在右面。
梯形图程序设计语言是最常用的一种程序设计语言,它来源于继电器逻辑控制系统的描述。在工业过程控制领域,电气技术人员对继电器逻辑控制技术较为熟悉。因此,由这种逻辑控制技术发展而来的梯形图受到欢迎,并得到广泛的应用。
梯形图程序设计语言的特点是:
·与电气操作原理图相对应,具有直观性和对应性;
·与原有继电器逻辑控制技术相一致,易于撑握和学习;
·与原有的继电器逻辑控制技术的不同点是:梯形图中的能流(Power FLow)不是实际意义的电流,内部的继电器也不是实际存在的继电器,因此应用时需与原有继电器逻辑控制技术的有关概念区别对待;
·与布尔助记符程序设计语言有一一对应关系,便于相互转换和程序检查。
(2) 布尔助记符(Boolean Mnemonic)程序设计语言
布尔助记符程序设计语言是用布尔助记符来描述程序的一种程序设计语言。布尔助记符程序设计语言与计算机中的汇编语言非常相似,采用布尔助记符来表示操作功能。
布尔助记符程序设计语言具有下列特点:
·采用助记符来表示操作功能,具有容易记忆,便于撑握的特点;
·在编程器的键盘上采用助记符表示,具有便于操作的特点,可在无计算机的场合进行编程设计;
·与梯形图有一一对应关系,其特点与梯形图语言基本类同。
(3) 功能表图(Sepuential Function Chart)程序设计语言
功能表图程序设计语言是用功能表图来描述程序的一种程序设计语言。它是近年来发展起来的一种程序设计语言。采用功能表图的描述,控制系统被分为若干个子系统,从功能入手,使系统的操作具有明确的含义,便于设计人员和操作人员设计思想的沟通,便于程序的分工设计和检查调试。功能表图程序设计语言的特点是:
·以功能为主线,条理清楚,便于对程序操作的理解和沟通;
·对大型的程序,可分工设计,采用较为灵活的程序结构,可节省程序设计、调试时间;
·常用于系统规模校大、程序关系较复杂的场合;
·只有在活动步的命令和操作被执行,对活动步后的转换进行扫描,因此整个程序的扫描时间较其他程序编制的程序扫描时间要短得多。
功能表图来源于佩特利(Petri)网,由于它具有图形表达方式,能比较简单清楚地描述并发系统和复杂系统的所有现象,并能对系统中存在的象死锁、不安全等反常现象进行分析和建模,在模型的基础上可以直接编程,因此得到了广泛的应用。近几年推出的可编程控制器和小型集散控制系统中也已提供了采用功能表图描述语言进行编程的软件。(4) 功能模块图(Function Block)程序设计语言
功能模块图程序设计语言是采用功能模块来表示模块所具有的功能,不同的功能模块有不同的功能。它有若干个输入端和输出端,通过软连接的方式,分别连接到所需的其它端子,完成所需的控制运算或控制功能。功能模块可以分为不同的类型,在同一种类型中,也可能因功能参数的不同而使功能或应用范围有所差别,例如,输入端的数量、输入信号的类型等的不同使它的使用范围不同。由于采用软连接的方式进行功能模块之间及功能模块与外部端子的连接,因此控制方案的更改、信号连接的替换等操作可以很方便实现。功能模块图程序设计语言的特点是:
·以功能模块为单位,从控制功能入手,使控制方案的分析和理解变得容易;
·功能模块是用图形化的方法描述功能,它的直观性大大方便了设计人员的编程和组态,有较好的易操作性;
·对控制规模较大、控制关系较复录的系统,由于控制功能的关系可以较清楚地表达出来,因此,编程和组态时间可以缩短,调试时间也能减少;
·由于每种功能模块需要占用一定的程序内存,对功能模块的执行需要一定的执行时间,因此,这种设计语言在大中型PLC和集散控制系统的编程和组态中才被采用。
(5) 结构化语句(Structured Text)描述程序设计语言
结构化语句描述程序设计语言是用结构化的描述语句来描述程序的一种程序设计语言。它是一种类似于高级语言的程序设计语言。在大中型的可编程序控制器系统中,常采用结构化语句描述程序设计语言来描述控制系统中各个变量的关系。它也被用于集散控制系统的编程和组态。
结构化语句描述程序设计语言采用计算机的描述语句来描述系统中各种变量之间的运算关系,完成所需的功能或操作。大多数制造厂商采用的语句描述程序设计语言与BASIC语言、PASCAL语言或C语言等高级语言相类似,但为了应用方便,在语句的表达方法及语句的种类等方面都进行了简化。
结构化程序设计语言具有下列特点:
·采用高级语言进行编程,可以完成较复杂的控制运算;
·需要有一定的计算机高级程序设计语言的知识和编程技巧,对编程人员的技能要求较高,普通电气人员难以完成。
·直观性和易操作性等较差;
·常被用于采用功能模块等其他语言较难实现的一些控制功能的实施。
部分PLC的制造厂商为用户提供了简单的结构化程序设计语言,它与助记符程序设计语言相似,对程序的步数有一定的限制。同时,提供了与PLC间的接口或通信连接程序的编制方式,为用户的应用程序提供了扩展余地。 3 PLC程序设计语言应用实例
温度控制是许多机器的重要的构成部分。它的功能是将温度控制在所需要的温度范围内,然后进行工件的加工与处理。PID控制系统是得到广泛应用的控制方法之一,下面较为详尽地介绍了PID温度控制的PLC程序设计实例。
(1) 系统组成
本套系统采用Omron的PLC与其温控单元以及Pro-face的触摸屏所组成。系统包括CQM1H-51、扩展单元TC-101、GP577R以及探温器、加热/制冷单元。
(2) 触摸屏参数设置
设002代表现在的温度,而102表示输出的温度。如按下开始设置就可设置参数。需要设置的参数有6个,分别是比例带、积分时间、微分时间、滞后值、控制周期、偏移量。它们在PLC的地址与一些开关的地址如下:
比例带 : DM51 积分时间 : DM52
微分时间 : DM53 滞后值 : DM54
控制周期 : DM55 偏移量 : DM56
数据刷新 : 22905
(3) PLC程序
002:PID的输入字
102:PID的输出字
[NETWORK]
Name="Action Check" //常规检查
[STATEMENTLIST]
LD 253.13 //常ON.
OUT TR0
CMP 002 #FFFF
//确定温控单元是否完成初始化
AND NOT 255.06 //等于
OUT 041.15 //初始化完成
LD TR0
AND 041.15
OUT TR1
AND NOT 040.10
//不在参数设置状态
MOV DM0050 102
//将设置温度DM50传送给PID输出字
LD TR1
MOV 002 DM0057
//将002传送到DM57
[NETWORK]
Name="Setting Start" //设置开始
[STATEMENTLIST]
LD 253.13
OUT TR0
AND 229.05
//触摸屏上的开始设置开关
DIFU 080.05 //设置微分
LD TR0
AND 041.15
AND 080.05
SET 040.01 //开始设置标志位1
SET 040.10 //开始设置标志位2
[NETWORK]
Name="Poportion" //比例带设置
[STATEMENTLIST]
LD 040.01
OUT TR0
AND NOT 042.01
MOV #C110 102
//读输出边与输入边的比例带
CMP 002 #C110
//比较输入字是否变成C110
AND 255.06 //等于
SET 042.01 //设置比例带标志
LD TR0
AND 042.01
MOV DM0051 102
//将比例带的设定值写入输出字
CMP 002 DM0051 //是否写入
AND 255.06
SET 040.01 //复位标志1
RSET 042.01 //复位比例带标志
SET 040.02 //向下继续设置标志
[NETWORK]
Name="Integral"//积分时间设置
[STATEMENTLIST]
LD 040.02
OUT TR0
AND NOT 042.02
MOV #C220 102
//读输出边与输入边的积分
CMP 002 #C220
//比较输入字是否变成C220
AND 255.06
SET 042.02 //设置积分标志
LD TR0
AND 042.02
MOV DM0052 102
//将积分的设定值写入输出字
CMP 002 DM0052 //是否写入
AND 255.06
RSET 040.02
RSET 042.02
SET 040.03 //向下继续设置标志
[NETWORK]
Name="differential"//微分时间设置
[STATEMENTLIST]
LD 040.03
OUT TR0
AND NOT 042.03
MOV #C330 102
//读输出边与输入边的微分
CMP 002 #C330
//比较输入字是否变成C330
AND 255.06
SET 042.03 //设置微分标志
LD TR0
AND 042.03
MOV DM0053 102
//将微分的设定值写入输出字
CMP 002 DM0053 //是否写入AND 255.06
RSET 040.03
RSET 042.03
SET 040.04 //向下继续设置标志
[NETWORK]
Name="Hysteresis"//滞后值设置
[STATEMENTLIST]
LD 040.04
OUT TR0
AND NOT 042.04
MOV #C440 102
//读输出边与输入边的滞后值
CMP 002 #C440
//比较输入字是否变成C440
AND 255.06
SET 042.04 //设置滞后值标志
LD TR0
AND 042.04
MOV DM0054 102
//将滞后值的设定值写入输出字
CMP 002 DM0054 //是否写入
AND 255.06
RSET 040.04
RSET 042.04
SET 040.05 //向下继续设置标志
[NETWORK]
Name="Period" //控制周期设置
[STATEMENTLIST]
LD 040.05
OUT TR0
AND NOT 042.05
MOV #C550 102
//读输出边与输入边的控制周期
CMP 002 #C550
//比较输入字是否变成C550
AND 255.06
SET 042.05 //设置控制周期标志
LD TR0
AND 042.05
MOV DM0055 102
//将控制周期的设定值写入输出字
CMP 002 DM0055 //是否写入
AND 255.06
RSET 040.05
RSET 042.05
SET 040.06 //向下继续设置标志
[NETWORK]
Name="Shift" //偏移量设置
[STATEMENTLIST]
LD 040.06
OUT TR0
AND NOT 042.06
MOV #C660 102
//读输出边与输入边的偏移量
CMP 002 #C660
//比较输入字是否变成C660
AND 255.06
SET 042.06 //设置偏移量标志
LD TR0
AND 042.06
MOV DM0056 102
//将偏移量的设定值写入输出字
CMP 002 DM0056 //是否写入
AND 255.06
RSET 040.06
RSET 042.06
SET 040.00
[NETWORK]
Name="Return" //返回
[STATEMENTLIST]
OUT TR0
AND NOT 042.00
MOV #C070 102 //读输入边的处理值
CMP 002 #C070 //比较输入字变成C070
AND 255.06
SET 042.00 //返回标志
LD TR0
AND 042.00
MOV DM0050 102
//将设定温度值写入输出字
RSET 040.00
RSET 042.00
RSET 040.10 4 结束语
以上是PID温度控制的PLC程序设计实例,经过反复试验,该系统可以维持温度在1℃之间变化,保证了好的生产状况,减少了不合格品发生的几率。
C. 西门子PLC用什么语言编程,用梯形图么还是什么语言
西门子PLC支持以下编程语言,包括梯形图:
1、顺序功能图
西门子STEP7的编程语言为S7Graph图形。这是在其他编程语言之上的一种图形语言,用于编程顺序控制程序(如机械手控制程序)。在撰写本文时,该过程被分为几个连续的步骤,每个步骤包括控制输出的动作,并且通过改变条件来控制从一个步骤到另一个步骤的过渡,这特别适合于生产和制造过程。
2、梯形图
这是应用最广泛的PLC编程语言,由于它与继电器相似,特别适用于数字逻辑控制。梯形图由触点、线圈和用方框表示的指令组成。
触点代表逻辑输入条件,线圈代表逻辑操作结果,常用指示灯、开关和内部标志。指令框用于表示附加指令,如计时器、计数器或数学运算。在程序中,最左边的是主信号流,它总是从左向右流动。
3、语句表
是一种类似于微机汇编语言的文本编程语言,由若干语句组成。语言表适合有经验的程序员使用。可以实现一些梯形图无法实现的功能。
4、功能块图
功能块图使用类似于布尔数的图形逻辑符号来表示控制逻辑,指令块表中显示了一些复杂的函数,适用于具有数字电路基础的程序员。
(3)plc用什么语言编程最好扩展阅读:
西门子PLC安装及注意事项:
1、辅助电源功率小,只能驱动小功率设备(光电传感器等);
2、一般来说,PLC有一定数量的占有点(即空地址终端),不接电线;
3、PLC存在I/O响应延迟的问题,特别是在快速响应设备中;
4、输出有继电器型、晶体管型(高速输出时最好选择),输出可直接带轻载(LED指示灯等);
5、输入或断开时间应大于PLC扫描时间;
6、由于PLC输出回路无保护,所以外部回路应串联使用熔断器等保护装置,防止PLC因负载短路而损坏;
7、不要将交流电源线连接到输入端,以免烧毁可编程逻辑控制器;
8、接地端子应单独接地,不得与其他设备接地端子串接,接地线切割面不小于2mm2;
9、输入、输出信号线应尽量分开,不得与电源线在同一管线内或捆绑在一起,以免干扰信号和误操作;信号传输线应采用屏蔽线,屏蔽线应接地;为保证信号可靠,输入、输出线一般控制在20米以内。
参考资料来源:网络-西门子PLC
D. PLC常用编程语言有哪些各有什么特点
1.PLC常用的编程语言有哪些?各有哪些特点?
答:有梯形图(LAD)、语句表(STL)、顺序功能图(SFC)、功能块图(FBD)等。
梯形图(LAD):(1)“从上到下”按行绘制,每一行“从左到右”绘制,左侧总是输入接点,最右侧为输出元素。
(2)梯形图的左右母线是一种界限线,并未加电压,支路(逻辑行)接通时,并没有电流流动。
(3)梯形图中的输入接点及输出线圈等不是物理接点和线圈,而是输入、语句表(输出存储器中输入、语句表(输出点的状态。
(4)梯形图中使用的各种PLC内部器件,不是真的电器器件,但具有相应的功能。梯形图中每个继电器和触点均为PLC存储器中的一位。
(5)梯形图中的继电器触点即可常开,又可常闭,其常开、语句表(常闭触点的数目是无限的(受存储容量限制),也不会磨损。
(6)PLC是采用循环扫描方式工作,梯形图中各元件是按扫描顺序依次执行的,是一种串行处理方式。
E. 请问PLC的程序可以用C语言写还是c++来写
PLC大部分是可以用C语言来编写的,璧如说西门子的模块功能,信捷的函数功能模块都是用C语言来写的,非常方便,其实每一家PLC官方的编程软件大多基于C语言来开发的,而且每个PLC程序在写入PLC下位机前都是转换成C语言才写入的,上述回答非常不负责任,不要误导大家,希望有志在电气自动化深造的你们撑握好C语言!
F. PLC到底用C语言该是汇编语言好
两者都可以!
汇编在操作硬件的方面比C还好!
建议就用C吧`直观,代码比较好理解,再说,就算以后工作上一定要用汇编,C语言里也可以调用汇编的代码!
G. PLC用什么语言编程
通常三种 : 梯形图,功能表,ST文本 ,还有其他2-3种,但不常用。现在高级点PLC都支持前3种混合使用。
一般采用梯形图,如果有较复杂算法和自编通讯程序,考虑用ST文本。
如果对电子、单片机精通,一边习惯用功能表。
不管哪种语言,都是一种符号,最后都要转换为汇编,并生成机器语言下载到plc中。
H. PLC用哪种编程语言比较好
PLC编程语言主要是梯形图,语句表,结构功能图,这三种,少数的PLC还支持C语言,哪种都是各有各的特点,没有什么好不好的,就看编程人员喜欢用哪种了,我就比较喜欢用梯形图,单片机编程转行PLC编程的就喜欢用语句表和C语言。
望采纳。。。。。。