微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于VB的计算机与软起动器的通讯

基于VB的计算机与软起动器的通讯

时间:02-17 来源:互联网 点击:
1 引言

  随着电力电子技术、微电子技术的发展,软起动器因其起动效果好、控制方便、性能可靠等特点,逐渐取代了传统的自耦降压起动、y/△起动方式,广泛应用于交流电动机的控制上。

  在自动化领域,随着分布式控制系统的发展,只能现场控制的封闭控制模式已不能满足需要,这种对生产设备的实时自动控制及生产流程的实时监控的需要,促使电器设备在网络通讯方面得到了快速的发展。

  rs-485采用半双工工作方式,通讯距离可达几百米到上千米。采用平行发送和差分接收,具有抑制共模干扰的能力。用于多点互连时非常方便,可以节约信号线。应用rs-485可以联网构成分布式系统,它允许最多并联32台驱动器和32台接收器。rs-485标准接口的这些特点使之适合电力自动化系统设备层与间隔层之间的通讯要求。因此目前电力自动化系统中,各测量单元、自动装置和保护单元常配有rs-485标准接口。用户可以根据通讯协议开发通讯程序,通过上位机监控软起动器的运行。

  本文以西安西普电力电子有限公司的strc系列软起动器为例,介绍基于rs-485总线的计算机与多台软起动器通讯的设计。

2 系统的硬件连接

  strc系列软起动器是西安西普电力电子有限公司推出的高性能的16位微处理器全数字控制起动装置,执行速度快、准确性高,它内置的标准rs-485通讯接口,可以方便的与上位机进行串行通讯,实现上位机对软起动器功能参数的查询、设置、修改及运行状态和运行参数的直观监控,实现组网运行。系统组成如图1所示。

  由于计算机只有rs-232口,因此计算机需通过一个rs232/rs485转换器接入rs485网,参与对软起动器的控制。系统中,软起动器作为从机与计算机组成“一主多从式”控制网络。

3 strc系列软起动器的通讯协议

  rs-485标准只对接口的电气特性做出规定,而不涉及通讯协议,通信协议是在接口硬件电路的基础上用户自行规定的。

  由于软起动器为现场工业级智能设备,且通讯不是优先级最高的中断,因此协议采用问答式握手协议,这种通讯协议响应快,准确率高,是目前现场级设备常用的通讯方式之一。

  3.1 数据格式

  软起动器采用异步通讯格式, 由1位起始位, 8位数据位, 1位奇偶校验位, 1位停止位组成。其中奇偶校验位作为地址选择标志,复位为等待响应信号状态; 置位为闲置状态。

  可通讯的波特率有:600bps、1200bps、2400bps、4800bps、9600bps、19200bps。缺省设置为9600bps。

  pc机与软起动器的通讯方式为异步半双工,传送的数据均为二进制码。

  3.2 通讯过程

  在pc机与软起动器的通讯过程中,pc机始终是指令的发出者,软起动器不能主动向pc机发送指令或数据,始终是指令的响应者。pc机以广播的形式发送指令,网络上所有从机同时接收到上位机发送的指令,然后与本机地址比较,只有与指令地址相符的软起动器才响应指令,并发出响应信息如图2所示。根据pc机对软起动器的操作方式,有3种通讯过程。

  (1) 快速操作指令

  快速操作是控制中最常用的操作,是控制软起动器正常运行的,包括起动、停止、故障复位、修改参数等。

  (2) 写参数操作指令

  写参数操作是pc机向软起动器发送的修改参数指令,它可以修改软起动器的所有参数,包括起动时间,起动初始电压,起动方式等等,其通讯过程如图3所示。

  (3) 读参数操作指令

  pc机执行读参数操作, 可以向软起动器读取所有的运行参数、参数表、及当前状态,其通讯过程如图4所示。

  3.3 通讯指令

  对应3种通讯过程,有3种通讯指令:快速指令、写指令、读指令。

  (1) 快速指令

  共2字节,从机接到指令后,可以立即执行。响应速度快,准确度高。结构如表1所示。

  3.4 strc软起动器的通讯设置

  使用软起动器时,应对软起动器的通讯地址波特率进行设置。从机地址范围为0~31,由软起动器上的拨码开关设置。波特率由参数p00设置。当多台软起动器连接在同一网络上时,要保证每台软起动器的地址不同。

4 通讯程序及监控界面的设计

  vb是一种面向对象的编程语言,应用方便,功能强大,利用microsoft公司提供的activex控件mscomm.ocx就可以方便实现计算机与软起动器的串口通讯。

  主机发送两种形式的命令,一是周期性命令,一是非周期性命令。周期性命令即主机以轮询的方式周期性读取从机的状态字,判断从机运行状况及通讯情况;非周期性命令即主机发出的控制命令,如起动、停止、编辑参数报警查询等。

  以下是主要通讯程序:

  首先要初始化串行通讯端口

  private sub initcomport() ;初始化通讯端口子程序

  comm.commport=1 ;使用串口com1

  comm.setting=9600,m,8,1;波特率、奇偶校验位、8位数据位、1位停止位

com

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top