VB6.0与三菱PLC串行通信实现

需积分: 10 2 下载量 163 浏览量 更新于2024-09-15 收藏 188KB DOC 举报
"本文主要介绍了如何使用VB6.0与三菱FX2N-64MR型PLC进行串行通信,通信方式采用的是基于MSCOMM.OCX控件的编程,通过SC-09电缆连接。通信协议包括起始符、命令字、首地址、数据区、结束符和校验码,波特率为9600,采用偶校验,7位数据位,1位停止位。" 在VB6.0中与三菱PLC进行通讯时,通常会使用两种方法:Windows API函数和VB内置的通信控件MSCOMM.OCX。由于MSCOMM.OCX控件提供了更为方便和完善的发送和接收功能,因此在本项目中被选用。为了建立连接,需要一根SC-09电缆,一端连接到计算机的串口,另一端连接到PLC的RS-422编程口。 通信协议的结构包含五个部分: 1. 起始字元STX(ASCII码的0x02):标志着数据传输的开始,无论是发送命令还是接收响应,都会以STX开始。 2. 命令号码:这是16进制的两位数字,用于指示上位机(计算机)要求下位机(PLC)执行的操作,比如读取或写入单点状态、读取或写入寄存器数据、强制设定、运行或停止等。在回应信息中,PLC会将接收到的命令号码回传给上位机。 3. 元件首地址:指明要操作的PLC元件的地址,例如读取D123单元的数据,地址为0x10F6。 4. 元件个数:指定一次操作涉及的元件数量,例如连续读取多位或字元件。 5. 结束字元ETX(ASCII码的0x03):表明通信的结束,接收方通过ETX来判断通信已完成。 6. 校验码(Checksum):采用LRC(Longitudinal Redundancy Check)方法计算,确保数据在传输过程中没有错误。当PLC收到信息后,会再次计算校验码,如果与接收到的相同,则表明数据传输正确。 三菱FX系列PLC与计算机之间的通信是基于请求-响应模式的,即由主机(计算机)发起命令,PLC根据接收到的命令做出相应,并返回响应信息。值得注意的是,PLC自身不具备主动发送命令的功能,它只能对主机的指令做出反应。 在VB6.0编程中,使用MSCOMM.OCX控件时,我们需要设置控件的相关属性,如波特率、数据位、校验方式等,然后编写发送和接收数据的代码。发送数据时,需要按照协议格式打包命令,包括命令号码、地址和校验码等信息。接收数据时,同样需要解析PLC返回的响应,提取出有效数据。 通过这样的通信方式,开发者可以实现对三菱FX2N-64MR型PLC的远程监控和控制,进行数据交换,从而实现自动化系统的高效运作。在实际应用中,可以根据具体需求设计上位机的用户界面,以便更直观地查看和控制PLC的状态和数据。