go语言能控制plc吗,go是什么编程语言

plc能用C语言编程吗?

不能。每个PLC都有自己的编程语言,但用法基本上和C语言差不多。

创新互联主要为客户提供服务项目涵盖了网页视觉设计、VI标志设计、营销网站、网站程序开发、HTML5响应式成都网站建设公司移动网站建设、微商城、网站托管及企业网站维护、WEB系统开发、域名注册、国内外服务器租用、视频、平面设计、SEO优化排名。设计、前端、后端三个建站步骤的完善服务体系。一人跟踪测试的建站服务标准。已经为成都茶艺设计行业客户提供了网站营销服务。

PLC编程支持的语言包括五种:

1、梯形图Delete(LD)

梯形图语言是PLC程序设计中最常用的编程语言。它是与继电器线路类似的一种编程语言。由于电气设计人员对继电器控制较为熟悉,因此,梯形图编程语言得到了广泛的欢迎和应用。

2、指令表Delete(IL)

指令表编程语言是与汇编语言类似的一种助记符编程语言,和汇编语言一样由操作码和操作数组成。在无计算机的情况下,适合采用PLC手持编程器对用户程序进行编制。

3、功能模块图Delete(FBD)

功能模块图语言是与数字逻辑电路类似的一种PLC编程语言。采用功能模块图的形式来表示模块所具有的功能,不同的功能模块有不同的功能。

4、顺序功能流程图Delete(SFC)

顺序功能流程图语言是为了满足顺序逻辑控制而设计的编程语言。编程时将顺序流程动作的过程分成步和转换条件,根据转移条件对控制系统的功能流程顺序进行分配,一步一步的按照顺序动作。

5、结构化文本Delete(ST)

结构化文本语言是用结构化的描述文本来描述程序的一种编程语言。它是类似于高级语言的一种编程语言。

扩展资料

1、不同型号的PLC编程软件对以上五种编程语言的支持种类是不同的,早期的PLC仅仅支持梯形图编程语言和指令表编程语言。

2、目前的PLC对梯形图(LD)、指令表(STL)、功能模块图(FBD)编程语言都以支持。

3、在PLC控制系统设计中,要求设计人员不但对PLC的硬件性能了解外,也要了解PLC对编程语言支持的种类。

参考资料来源:百度百科-可编程逻辑控制器

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℃之间变化,保证了好的生产状况,减少了不合格品发生的几率。

为什么选用LOGO!逻辑控制器,在原有的plc程序中插入程序,如编程语言不同,能行吗,有冲突吗。

没有冲突。

LOGO和PLC都是逻辑控制器,区别在于LOGO比PLC更便宜,适合小型开关量的逻辑控制,编程语言为继电器和模块式。

如果你将LOGO里的程序弄明白,用梯形图编辑转化到PLC上,效果是一样的

数控g代码控制机床 和 plc 控制的关系

NC中的G代码被NC中的编译器编译成机器语言再传输给PLC,PLC控制伺服控制器,控制电机。

也就是说,G代码等效于你自己的动作,连成一串,通知PLC动作,

PLC根据NC的解释执行G代码。

一个是解释你的指令,一个是执行

另外,别听那家伙瞎说,我在CNC研究所工作过,知道一点。

西门子802要运动卡吗?????


本文题目:go语言能控制plc吗,go是什么编程语言
网页链接:http://myzitong.com/article/hcghss.html