0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

BASIC编程语言在PLC控制系统中有哪些应用

电子设计 来源:郭婷 作者:电子设计 2019-01-16 07:52 次阅读

1 引言

basic语言是微机系统中广泛应用的一种高级编程语言,它的指令接近思维逻辑的表达,与自然语言有相通之处,易学易懂,同时它包涵丰富的算法函数,能十分方便地进行各种数据处理,因而深受广大编程爱好者喜爱。plc是计算机科学在工业控制领域内的一个重要分支,它一般采用梯形图、语句表作为其编程语言,由于梯形图形似电气原理图,直观易懂,易为电气工程师所接受,为plc的推广应用起到了极大的推动作用。plc从诞生至今,几十年来,应用领域不断扩大,现在,通讯问题已成为plc应用中的一个重要课题之一。

本文以ge fanuc plc系列pcm智能通讯模块在某泵站控制系统中的应用为例进行探讨,介绍了basic语言在解决plc与现场仪表或其它外部智能设备之间数据通讯问题时能起到的作用,为广大同行提供又一种串行通讯解决方案。

2 系统简述

本系统采用ge fanuc 90-30系列plc model351,一块智能通讯模块cmm311,一块可编程智能通讯模块pcm311,及开关量输入、输出模块,模拟量输入模块若干。

通讯模块cmm311有两个通讯口,分别负责与上位机组态软件及现场digital触摸屏进行通讯。

可编程通讯模块pcm311为通讯协处理机,内有固化的megabasic语言解释程序,能执行通过外部编程终端存储进来的basic程序。该模块有两个通讯端口,一个端口为编程口,ge公司logicmaster编程软件包中有专用于pcm模块编程的软件,用它可通过该编程口登录pcm模块,将计算机中文本形式的basic代码文件存入模块的存储器中;另一个端口为专用外部通讯口,在basic程序中可打开此端口与外部智能设备进行通讯。在特殊时候,编程口也可被basic程序打开,作与外部设备通讯用,但这样使用在调试时稍有不便。

系统布置要求叙述如下:

plc cpu负责开关量、模拟量的采集、运算,实施直接的控制功能;通讯模块cmm311通过两个通讯口分别连接上位机及触摸屏,实现人机界面与plc的数据通讯;pcm模块的com2与westinghouse(西屋仪表)mint ii网络转换器相连,负责通过mint ii网络转换器与现场三个种类的12台westinghouse仪表通讯,采集电流、电压、功率等各种物理量的实时数据,同时,com1在调试完毕后用来与现场一台三菱fx2n plc通讯,实现从ge plc系统到fx2n系统的数据通路,方案图如图1所示。

BASIC编程语言在PLC控制系统中有哪些应用

2.1 minit ii转换器通讯协议简介

在这个方案中,minit ii与下位设备的硬件连接为双绞线,minit ii及下位各设备都并入双绞线组成的westinghouse incom网络,在该网络中各通讯主体使用二进制通讯方式,数据帧均由33位二进制数构成,minit ii充当主站(master)角色,对下位各设备发起通讯,进行轮询。

pcm311模块与minit ii转换器进行的是ascii码通讯方式,而minit ii转换器与下位dt3000、mp3000、iq200各系列设备的通讯方式为二进制码通讯,实际上minit ii所起到的作用是将pcm模块发出的ascii码指令帧转译为二进制码指令帧,当然,在通讯过程中,我们只需关心ascii码通讯帧的格式,minit ii会自动将其转为二进制格式后发到incom网络中去。

minit ii模块的25针rs232串行口接收的ascii码帧由10个ascii码字符组成,分为控制指令帧、数据指令帧两类,大致形式如下:

控制指令:

(stx)(c/d)(inst)(comm)(scomm)(address)(sumcheck)

数据指令:

(stx)(c/d)(data)(sumcheck)

stx:第2号ascii码,占一位

c/d:控制指令时为1,数据指令时为0,占一位

inst、comm、scomm:由这三个数字指定需要返回的参数,各占一位

address:指定指令的发送对象,是一个三位数的十六制数,占三位

sumcheck:和校验码,占二位

data:返回的数据信息,占六位

minit ii串行通讯参数在其面板上通过开关来选定。

2.2 fx2n plc通讯协议简介

fx2n是三菱品牌plc在小系统控制应用中使用较多的一种经济型plc,外部设备通过232bd、485bd等插件或485adp等模块可与其建立ascii码串行通讯,读取plc内部寄存器的值。其协议格式如下:

(1) 读寄存器

*外设:(enq)(站号)(pc号)(命令字符)(等待时间)(头元件)(元件数)(和校验)

*plc:(stx)(站号)(pc号)(返回数据)(etx)(和校验)

*外设:(ack)(站号)(pc号)

(2) 写寄存器

*外设:(enq)(站号)(pc号)(命令字符)(等待时间)(头元件)(元件数)(写出数据)(和校验)

*plc:(stx)(站号)(pc号)

*enq、stx、ack、etx:为相应的ascii码

*站号:plc的站地址,为两位十六进制数(00-0fh),由plc的d8121寄存器指定

*pc号:用于a系列melsecnet网络中的plc,对fx2n均为ffh

*命令字符:分为位读(br)、位写(bw)、字读(wr)、字写(ww)

*等待时间:以10ms为单位,以十六进制数表示,占一个字符(0-f)

*头元件:为要读、写的开始元件号,如m0001、d0000等。

*元件数:为要读、写的元件个数。

*返回数据、写出数据:为从plc返回的寄存器值或要写到plc的数据值

由于fx2n与中央控制柜距离较远,故本系统中采用fx2n与485bd插件,pcm311模块经232/485转换器与485bd相连,转换器与485bd之间采用两对双绞线相连,全双工方式通讯,plc串行通讯参数在d8120中设定。

2.3 megabasic的语法简介

(1) 串口操作:pcm模块共有二个串口,它们均可在megabasic程序中被打开,与外部进行通讯,以下为常用的串口操作函数。

*串口的打开:open ,

如open #8,“com1”

*串口的关闭:close

如close #8

*串口通讯参数的设定:ioctl ,

(2) ioctl_string格式为:

baud(波特率),parity(校验),databits(数据位),stopbits(停止位),flowctl(流控制方式),physical(物理协议如232/485/422),duplexmode(通讯模式,半双工/全双工)

如ioctl #8,“19200,n,8,1,n,232”

(3) 从串口读取数据:inchr$(,)

如restr=inchr$(ch%,10,“”,0,timeout%)

(4) 向串口发送数据:print,

如print #8,“hello world”

(5) megabasic程序对plc寄存器的访问:

对于pcm模块所在的plc系统中的寄存器如%i,%q,%r,%m等,basic程序中并不可直接引用,而需通过使用特定的功能指令来访问它们。

a)访问plc寄存器之前,先要使用syslink指令。

syslink,,[type]

local_name:basic程序内部定义的变量

cpu_symbol:plc的寄存器名,外加双引号(如“%r500”)

type:关联数据的类型,如bool,byte,int16,uint,dint等

b) 读、写plc寄存器

sysread

syswrite

在syslink指令执行后,即可使用上面两个指令分别读、写basic变量所关联的plc寄存器。

2.4 系统编程过程简介

根据minit ii通讯协议及megabasic语言的基本语法,在文本编辑器(如记事本)中写好大致的程序,特别是对返回数据的解析编写专门的函数来进行处理,以得到浮点数形式的电压、电流、功率等数据,其中重点要注意好对返回错误帧时的处理,还有采集不同数据时的协议上的差别,这一部分程序写好后,利用pcm模块的com1通过logicmaster软件导入pcm模块,用com1监视运行,用com2通讯,进行联机调试,根据调试情况加以修正完善,得到最终版本。

类似上述步骤,根据fx2n的通讯协议,写好与fx2n通讯的程序,用com1监视运行,用com2通讯,经调试修正,得到最终版本。

将两个版本的程序合并,并将与fx2n通讯的端口改为com1,去掉程序中用于监视运行的输出语句(print),再重新导入pcm模块中,一个满足系统要求的完整的通讯程序就这样就写成了。

3 结束语

用类似本系统中的pcm模块完成通讯任务,笔者认为其相对利用plc梯形图程序进行通讯优点很明显。首先由于其使用的是与微机系统中的basic语言语法相同的高级语言,易学易懂,处理复杂的数据运算时得心应手,在复杂的有大量通讯任务的系统中有很重大的推广价值;再者在系统调试时也有明显优势,一个端口正在通讯时,一个端口实时监视程序的运行情况,并可以自然语言的形式输出实时的调试信息,plc程序就不会有这么好的效果,那么结果是这种系统的开发周期必然大为缩短。

plc系统中采用basic语言的协处理器,笔者认为这是plc应用中一个新的发展,对简化编程,减轻工控系统开发者的开发压力可起到较大的作用,据了解,很多plc厂商都有类似功能的模块生产,如三菱公司就推出了ad51h高速智能通信组件,使用ad51h basic语言,支持四个通信口,具备384k内存,大大提高了plc系统数据通信与收集方面的灵活性。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 控制系统
    +关注

    关注

    41

    文章

    5966

    浏览量

    108749
  • plc
    plc
    +关注

    关注

    4975

    文章

    12264

    浏览量

    454988
  • 编程语言
    +关注

    关注

    9

    文章

    1879

    浏览量

    33194
收藏 人收藏

    评论

    相关推荐

    什么是plc控制系统? plc是什么意思 什么是plc

    什么是plc控制系统? plc是什么意思 什么是plc 自二十世纪六十年代美国推出可编程逻辑控制
    发表于 04-14 22:27 7.3w次阅读

    PLC控制系统设计: PLC编程时应注意的问题

    编程序控制器(PLC或PC)的应用中,我们常会碰到对继电器控制系统的改造问题,这时我们往往要参考原有的继电器控制电路来编制PC的应用程序。因此,在
    发表于 07-28 17:35 1314次阅读

    BASICPLC控制系统中的应用

    1 引言 basic语言是微机系统中广泛应用的一种高级编程语言,它的指令接近思维逻辑的表达,与自然语言
    发表于 10-21 10:59 0次下载
    <b class='flag-5'>BASIC</b>在<b class='flag-5'>PLC</b><b class='flag-5'>控制系统</b>中的应用

    PLC目前5种标准的编程语言,你知道吗?

    继电器梯形图(LD-Ladder Diagram)语言PLC首先采用的编程语言,也是PLC最普遍采用的
    的头像 发表于 03-18 10:05 5.7w次阅读
    <b class='flag-5'>PLC</b>目前5种标准的<b class='flag-5'>编程</b><b class='flag-5'>语言</b>,你知道吗?

    浅析BASIC语言PLC通信系统中的应用

    basic语言是微机系统中广泛应用的一种高级编程语言,它的指令接近思维逻辑的表达,与自然语言有相
    发表于 03-18 08:37 1447次阅读
    浅析<b class='flag-5'>BASIC</b><b class='flag-5'>语言</b>在<b class='flag-5'>PLC</b>通信<b class='flag-5'>系统</b>中的应用

    PLC技术在工业控制系统中有怎么样的应用

    编程控制器简称———PLC是以微处理器为基础,综合了计算机技术、自动控制技术和通讯技术发展而来的一种新型工业控制装置,在工业自动控制系统
    发表于 07-14 16:42 8次下载
    <b class='flag-5'>PLC</b>技术在工业<b class='flag-5'>控制系统</b><b class='flag-5'>中有</b>怎么样的应用

    PLC控制系统的7大特点

     1.编程方法很容易学。 梯形图是plc最广泛使用的编程语言。其电路符号和表达式与继电器电路原理图相似。梯形图语言直观易学。熟悉继电器电路图
    发表于 01-06 10:38 5456次阅读

    plc编程语言标准中有哪几种编程语言

    )和结构文本(st)是书面语言。 1.顺序功能图 顺序图用于描述开关控制系统的功能,是一种高于其他编程语言的图形语言,用于编制顺序
    发表于 01-06 17:05 4171次阅读

    PLC常见的5种标准编程语言

    IEC 1131-3的编程语言是IEC工作组 对世界范围的PLC厂家的编程语言合理地吸收、借鉴的基础上形成的一套针对工业
    发表于 10-17 14:21 1.1w次阅读

    PLC编程语言类型有哪几种 具有什么特点

      PLC的用户程序,是设计人员根据控制系统的工艺控制要求,通过PLC编程语言的编制规范,按照实
    发表于 03-15 17:41 3810次阅读

    plc编程是什么 plc编程语言

    PLC编程主要包括程序设计、调试、修改和改进等工作。   在PLC编程中,程序员需要根据控制系统的要求和工况,使用Ladder Di
    发表于 04-14 15:44 5216次阅读

    西门子PLC的5种标准的编程语言

    IEC 1131-3的编程语言是IEC工作组 对世界范围的PLC厂家的编程语言合理地吸收、借鉴的基础上形成的一套针对工业
    发表于 06-29 16:01 4423次阅读
    西门子<b class='flag-5'>PLC</b>的5种标准的<b class='flag-5'>编程</b><b class='flag-5'>语言</b>

    五种支持plc编程语言有哪些

    PLC控制系统设计中,不同型号的PLC编程软件对以上五种编程语言的支持种类是不同的,所以不但对
    发表于 08-31 14:54 700次阅读
    五种支持<b class='flag-5'>plc</b><b class='flag-5'>编程</b>的<b class='flag-5'>语言</b>有哪些

    浅谈PLC 5种标准的编程语言

    IEC 1131-3的编程语言是IEC工作组 对世界范围的PLC厂家的编程语言合理地吸收、借鉴的基础上形成的一套针对工业
    发表于 11-15 11:14 412次阅读
    浅谈<b class='flag-5'>PLC</b> 5种标准的<b class='flag-5'>编程</b><b class='flag-5'>语言</b>

    plc编程语言与c语言的联系 c语言PLC有什么区别

    PLC编程语言与C语言的联系 PLC(可编程逻辑控制
    的头像 发表于 02-05 14:21 1099次阅读