基于VC环境的变频器联网控制
个类)的类Cdata,该类与数据库中的变频器网络信息表相联系。当要在网络中添加一个变频器时,不仅要在变频器网络信息表上进行添加数据操作,还要在数据库中添加一个关于该变频器功能码的新表。对变频器网络信息表的添加操作用了一个CdaoRecordset类数据库指针m_leftptr。CdaoRecordset类是对DAO记录集对象的封装,代表从数据源中选择的一种记录,管理数据库中表里记录的操作。而要在数据库中添加一个新增变频器功能码的新表,需要设定一个CdaoDatabase类的变量。CdaoDatabase类是对DAO数据库对象的封装,它代表了一个数据库连接,管理数据库的操作和数据库中表的操作。下面是网络中添加一个变频器时对数据库的操作程序。
添加完成后,该变频器如果在线就完成初始化数据库命令,初始化变频器的功能码。在软件上显示变频器功能码数据库如图4所示。
图4 变频器功能码
对控制软件的数据库中表的删除及表中记录的删除和更新操作所采用的DAO类是一样的,只是使用的指令不同,这里就不再赘述。变频器功能码表中的具体数据,要通过串口通信从相应的变频器中获得,这就要用到VC对计算机串口编程。
4 计算机串口通讯编程
对于VC的计算机串口通信编程可以用多种方法实现。MSComm控件通过串行端口传输和接收数据,因此,可在编写计算机串口通信程序时使用MSComm控件。MSComm控件使用时比较方便,只要完成简单的串口初始化设置,然后调用相应的读写函数即可完成计算机串口通信操作。但是,使用MSComm控件在设置通信参数时是成批进行的,即数据传输速率、奇偶校验、数据位数和停止位数是作为一个参数进行设置的。这样使通信参数的设置和修改不太灵活自如,因此,不采用MSComm控件进行串行通信编程。利用Windows通信API函数进行串口通信编程可以非常灵活地进行串口参数的配置,但编程非常复杂,专业化程度较高,因此也没有采用。利用VC的标准通信函数inp,inpw,inpd,outp,outpw,outpd等直接对串口进行操作编程需要对硬件电路的结构原理非常了解,但这里并不需要对计算机的串口电路非常了解,因此同样没有采用。最终程序中应用的是第三方编写的串行通信Cserial类。下面对CSerial类进行解释。
CSerial::CSerial是类构造函数,不带参数,负责初始化所有类成员变量。
CSerial::Open是打开通信端口的成员函数,带两个参数,一个是串行端口号,另一个是波特率。
CSerial::Close是关闭通信端口的成员函数。类析构函数调用这个函数,因此可不用显式调用这个函数。
CSerial::SendData函数把数据从一个缓冲区写到串行端口。它所带的第一个参数是缓冲区指针,其中包含要被发送的资料。这个函数返回一些到端口的实际字节数。
CSerial::ReadDataWaiting函数返回等待在通信端口缓冲区中的数据,不带参数。
CSerial::ReadData函数从端口接收缓冲区读入数据。第一个参数是缓冲区指针,第二个参数是个整数值,给出缓冲区的大小。
将CSerial.cpp和CSerial.h添加入源程序,在串口通信程序部分调用CSerial类的函数,可以很方便地完成通信功能。下面是在程序中用CSerial类编写通信程序,完成的功能是按既定的通信协议向变频器网络下传查询指令,并接收从站返回的信息。如果连发三次都没有接收到变频器的应答信息就显示变频器为离线状态。
在与变频器的通信中要求计算机的串口号和通信速率是可变的。Open函数的两个参数就是计算机的串口号和通信速率,在调用该函数初始化串口时,将这两个参数按所希望的数赋值就可以正常通信了。如果要修改这两个参数,只要将修改值赋给这两个参数的变量,再调用一次Open函数从新初始化计算机串口即可。在Open函数中仅初始化了串口号、通信速率和8位数据位这三个参数,其它参数采用上一次串口初始化形成的参数数据。但是,在通信中还要求传送的数据为二进制数据、偶校验和有1位停止位,这就要求对Open函数进行修改。对Open函数的修改主要是对其中设备控制快(DCB)的修改。只要将旧的DCB结构改写为以下结构即可。
经过上述修改后,用Open函数初始化的串口就符合传送二进制数、偶校验、8位数据位、1位停止位和波特率及端口可变的要求,计算机可以和变频器进行正常的通信了。
5 组网实验
远程控制软件完成后进行组网实验。网络上用一台计算机连接两台变频器,对其中一台变频器执行正转起动到30Hz的控制命令,软件控制界面显示如图5所示。
图5 变频器器起动控制界面
6 结语
本文主要介绍了实现变频器远程网络控制的计算机控制软件如何编写。从软件的功能框架,数据库的操作和
- 以创新的IGBT技术、合理的器件选型和有效的系统手段优化变频器设计(01-09)
- 台达变频器在数控机床的应用(06-29)
- 用薄膜电容器替代铝电解电容器的分析与实践(04-20)
- 关于变频器输出端连接开关的探讨(06-20)
- 基于台达变频器的EPS解决方案(07-29)
- 高性能V/f控制在中压变频器中的实现(07-08)