首页>>科技 >>内容

visual basic编程语言 菜鸟教程,浅析BASIC语言在PLC通信系统中的应用

发布时间:2023-09-30 17:58:26编辑:温柔的背包来源:

很多朋友对visual basic编程语言 菜鸟教程,浅析BASIC语言在PLC通信系统中的应用不是很了解,每日小编刚好整理了这方面的知识,今天就来带大家一探究竟。

visual basic编程语言 菜鸟教程,浅析BASIC语言在PLC通信系统中的应用

1 简介

基本语言是一种广泛应用于微型计算机系统的高级编程语言。其指令接近思维逻辑的表达,与自然语言有相似之处。它很容易学习和理解。同时,它包含丰富的算法功能,可以非常方便地用来执行各种任务。数据处理的一种,因此受到广大编程爱好者的喜爱。 PLC是计算机科学在工业控制领域的一个重要分支。它一般采用梯形图和语句表作为其编程语言。由于梯形图类似于电气原理图,因此直观易懂,很容易被电气工程师接受。是PLC的推广。应用程序对此发挥了巨大的推动作用。 PLC自诞生以来,几十年来其应用领域不断扩大。现在,通信问题已成为plc应用中的重要课题之一。

本文以GE Fanucplc系列pcm智能通信模块在泵站控制系统中的应用为例进行讨论,介绍了基本语言在解决plc与现场仪表或其他外部智能设备之间的数据通信问题中的作用。为同行提供另一种串口通讯解决方案。

2 系统概述

本系统采用GE Fanuc 90-30系列PLC model351、智能通讯模块cmm311、可编程智能通讯模块pcm311以及开关量输入输出模块和多个模拟量输入模块。

通信模块cmm311有两个通信口,分别负责与上位机配置软件和现场数字触摸屏的通信。

可编程通信模块pcm311是具有固化的兆基本语言解释器的通信协处理器,可以执行通过外部编程终端存储的基本程序。模块有2个通讯口,1个口为编程口。 GE公司的logicmaster编程软件包中有专门用于pcm模块编程的软件。您可以使用它通过编程口登录pcm模块,将基本代码文件以文本形式转换到计算机中。存储在模块的内存中;另一个端口是专用的外部通信端口,可以在基础程序中打开,与外部智能设备进行通信。特殊时候,也可以通过基本程序打开编程口,用于与外部设备通信,但这种使用在调试时稍显不便。

系统布局要求描述如下:

plc cpu负责开关量、模拟量的采集和计算,实现直接控制功能;通信模块CMM311通过两个通信口分别与上位机和触摸屏连接,实现人机界面与PLC之间的数据通信。 pcm模块的com2与西屋(Westinghouse Instruments)mint ii网络转换器相连,负责通过mint ii网络转换器与现场12台西屋仪器三种型号进行通信,采集电流等各种物理量的实时数据、电压、功率等。同时com1调试完成后用于与现场的一台三菱fx2n plc通信,实现ge plc系统到fx2n系统的数据通路。方案图如图1所示。

2.1 minit ii转换器通信协议介绍

在该方案中,minit ii与下层设备之间的硬件连接是双绞线。 Minit ii 和各个下层设备都集成到由双绞线组成的西屋incom 网络中。在该网络中,各个通信主体均采用二进制通信方式,数据帧均由33位二进制数组成。 Minit II 作为主站,为下层设备发起通信和轮询。

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) (地址) (sumcheck)

数据说明:

(stx) (c/d) (数据) (和检查)

stx:ASCII码2号,占一位

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

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

地址:指定命令的发送对象,为三位十六进制数,占三位。

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编号:用于系列melsecnet网络中的plc,ffh用于fx2n

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

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

*头组件:是要读写的起始组件号,如m0001、d0000等。

*组件数量:是要读写的组件数量。

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

由于fx2n距离中央控制柜较远,因此本系统中使用了fx2n和485bd插件。 pcm311模块通过232/485转换器连接到485bd。转换器和485bd 使用两对双绞线以全双工模式连接。通讯方面,plc串行通讯参数在d8120中设置。

2.3 megabasic语法介绍

(1)串口操作:pcm模块有两个串口,都可以在megabasic程序中打开,与外界进行通信。以下是常用的串口操作函数。

*串口开放:打开,

比如打开#8,“com1”

*关闭串口: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) 向串口发送数据:打印,

例如打印#8,“hello world”

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

对于pcm模块所在plc系统中的寄存器,如%i、%q、%r、%m等,在基本程序中不能直接引用,而是需要使用特定的功能说明。

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

系统链接,[类型]

local_name:基本程序中定义的变量

cpu_symbol:PLC寄存器名称,加双引号(如“%r500”)

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

b) 读写plc寄存器

系统读取

系统写入

执行syslink指令后,可以使用上述两条指令分别对基本变量关联的plc寄存器进行读写操作。

2.4 系统编程流程介绍

根据minit ii通信协议和megabasic语言的基本语法,在文本编辑器(如记事本)中编写一个粗略的程序,特别是编写一个特殊的函数来解析返回的数据以获取浮点形式的电压点数。电流、功率等数据。重点是要注意返回错误帧的处理,以及采集不同数据时的协议差异。这部分程序写完后,使用pcm模块的com1,通过logicmaster软件导入pcm模块。使用com1监控运行情况,使用com2进行通信,进行在线调试,根据调试情况进行修正和改进,得到最终版本。

与上述步骤类似,根据fx2n的通信协议,编写与fx2n通信的程序,使用com1监听运行,使用com2进行通信。经过调试和修正,得到最终版本。

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

3 结论

采用与本系统类似的pcm模块来完成通讯任务,笔者认为比采用plc梯形图程序进行通讯具有明显的优势。首先,由于它采用与微机系统中的基本语言语法相同的高级语言,因此易学易懂,很容易处理复杂的数据操作。在通信任务量大的复杂系统中具有很大的推广价值;其次,在系统调试时也具有明显的优势。端口进行通信时,会实时监控程序的运行状态,并能以自然语言的形式输出实时调试信息。 PLC程序不会有这么好的效果,所以结果是这样的系统的开发周期必然会大大缩短。

plc系统中采用的是基本语言协处理器。笔者认为,这是plc应用的一个新发展。它可以在简化编程、减轻工控系统开发人员的开发压力方面发挥更大的作用。据了解,很多plc厂家都有生产类似功能的模块。例如,三菱公司推出了ad51h高速智能通信组件,该组件采用ad51h基本语言,支持四个通信端口,拥有384k内存,大大提高了PLC系统中数据通信和采集的灵活性。

以上知识分享希望能够帮助到大家!