收藏 分享(赏)

上位机与三菱PLC通讯.pdf

上传人:HR专家 文档编号:7296403 上传时间:2019-05-14 格式:PDF 页数:3 大小:120.03KB
下载 相关 举报
上位机与三菱PLC通讯.pdf_第1页
第1页 / 共3页
上位机与三菱PLC通讯.pdf_第2页
第2页 / 共3页
上位机与三菱PLC通讯.pdf_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

1、三菱 PLC 与上位机通讯 RS232C 三菱 PLC: FX1N + FX1N-232-BD FX2N + FX2N-232-BD 计算机: Windows XP 中文企业版 + Visual Basic 6.0 中文企业版 Windows 98 中文版 + Visual Basic 6.0 中文企业版 两者之间连接使用的是 FX-232CAB-1 电缆线( 2-3, 3-2, 4-6( 8) , 5-5) RS485 三菱 PLC: FX2N + FX2N-485-BD 计算机: Windows 98 中文版 + Visual Basic 6.0 中文企业版 + RS232-RS485 转

2、换器( ATC-106 型) 两者之间连接使用一对导线连接, 即将 FX2N-485-BD 的 SDA 和 RDA 短接后与 RS232-RS485 转换器的 485+接, SDB 和 RDB 短接后与 RS232-RS485 转换器的485-接。 一三菱PLC的设置 三菱FX PLC在进行计算机链接(专用协议)和无协议通讯(RS指令)时均须对通讯格式(D8120)进行设定。其中包含有波特率、数据长度、奇偶校验、停止位和协议格式等。 在修改了 D8120 的设置后,确保关掉PLC的电源,然后再打开。 此外,对于采用 RS485 形式 1:N 计算机链接的还必须对站点号(D8121)进行设定。设

3、定的范围从00H到 0FH(即 0到 15) 。 在这里对 D8120 采用下述设置: RS232C RS485 b15 b0 b15 b0 0110 1000 1000 1110 0110 0000 1000 1110 6 8 8 E 6 0 8 E 即数据长度为7位,偶校验,2位停止位,波特率为9600bps,无标题符和终结符,采用计算机链接(RS232C或RS485),自动添加和校验码,采用专用协议格式1。 同时设定站号为0。具体设定如下所示: RS232C: RS485: FX PLC 进行计算机链接时可用的专用协议有两种:格式 1 和格式 4。两种格式的差别在于是否在每一个块上添加了

4、 CR + LF,其中添加了 CR + LF 的是格式 4。在这里采用格式 1。 二上位机程序的编制 这里采用 Microsoft公司的 Visual Basic 6.0中文企业版编制上位机程序。 Visual Basic 中提供了一个名为 MSComm 的通信控件便于设计串行通信的程序。MSComm 控件的主要属性有: 1 CommPort属性 CommPort属性用于指定所要使用的串行端口的号码。虽然Windows操作系统可以容纳最多256个串行通信端口,不过 Visual Basic的 MSComm控件则仅限于 16个端口。 2 Settings属性 Settings 属性用于设置初始化

5、参数。以字符串的形式设置波特率、奇偶校验、数据位、停止位等 4个参数。其格式为“BBBB,P,D,S” ,其中BBBB表示波特率,P表示奇偶校验位检查方式,D表示数据位数,S 表示停止位数。一般情况下,欧美仪器习惯使用“9600,n,8,1”当成设置值;而日本仪器则习惯使用“9600,e,7,2”作为设置值。Settings设置完成之后,所传输及接受的字符串便以此设置为准,使用 RS-232 通信的双方,Settings 必须完全一样,彼此才能顺利地通信,否则双方将无法正确接收到彼此所传输的信号。所以,该属性的设置必须和三菱 PLC 中 D8120 的相关设置保持一致。在这里,统一采用“960

6、0,e,7,2”的设定。 3 PortOpen属性 PortOpen属性用于设置通信连接端口的状态。 在使用串行端口之前必须先将要使用的串行端口打开。在上位机程序中应进行如下设定: Private Sub Form_Load() 窗体载入事件 MSComm1.CommPort = 1 选择端口号 MSComm1.Settings = “9600,e,7,2“ 设置端口属性 MSComm1.PortOpen = True 打开端口 End Sub 4 Output属性 MSComm 控件的 Output 属性提供了发送的功能,当从计算机向可编程控制器写入数据或从可编程控制器读取数据时,上位机应当

7、先发出以下格式(格式 1)的指令字符串: ENQ 站号 PC号 命令 消息等待时间 字符区域A 和校验代码 其中站号为在 D8121 中的设定值,这里是: 00, PC 号对于 FX 系列为: FF。 因为 ENQ, ACK, NAK 等通信控制字符是不可见字符,所以先用 Chr 函数对其进行赋值: ENQ=Chr( 5) ACK=Chr( 6) NAK=Chr( &H15) 然后在上位机程序中写入以下代码即可发出指令: MSComm1.Output=ENQ &“ 00FF” 5 Input属性 与Output属性相反,Input属性提供了接收数据的功能。它将对方传到输入缓冲区中的数据读进程序

8、中,并清除缓冲区中已被读取的数据。 a. 如果是从计算机向可编程控制器写入数据时,接收到从可编程控制器返回的应该是以下格式的字符串: ACK 站号 PC 号 或者 NAK 站号 PC 号 错误代码 前一种表示可编程控制器已经正确接收到从计算机发来的指令,后一种表示可编程控制器未正确接收到从计算机发来的指令。 b. 如果是从计算机向可编程控制器读取数据时,接收到从可编程控制器返回的应该是以下格式的字符串: STX 站号 PC 号 字符区域B ETX 和校验代码 或者 NAK 站号 PC 号 错误代码 如果要连续读取数据可以利用Timer控件。 将Output和Input放在Timer控件的Tim

9、er事件中即可。程序会以Timer控件的Interval属性中设置的间隔去发送指令和接收数据。 对于MSComm控件的其他一些属性使用VB的默认值即可。 在串行通信传输的应用中,经常使用的Visual Basic中的字符串处理函数 如下: Chr函数: 返回含有特定ANSI或DBCS字符码的字符串。 Asc函数: 返回字符串第一个字符的ANSI或DBCS字符码。 Len函数: 返回以字符数为单位的字符串长度。 Mid函数: 取得字符串中特定数量的字符,可指定开始获取的位置和长度。 Left函数: 取得字符串的左边固定字符数的字符串。 Right函数: 取得字符串的右边固定字符数的字符串。 Va

10、l函数: 把字符串转换为数值,可以将8进制或16进制的字符串转换为10进制。 Hex函数: 返回以十六进制数值表示的字符串。 三 程序界面 四程序的使用 程序运行时,在界面的“写指令”框中输入指令字符串(除去ENQ以及和校验) ,即“站号 PC号 命令 消息等待时间 字符区域 A” ,比如“00FFBR0M000005” ,然后按下“发送指令”按键,指令随即发出 (校验和在后台算出后并和ENQ以及输入的字符串一同发出, 参见程序) 。 这里利用了一个Timer控件进行实时发送和接收。这时就可以直接在“写指令”框中进行更改。象“00FFBR0M000005”发出后PLC将返回从M0到M4的状态并在“读取数据”框中显示。 Timer 控件 MSComm 控件

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报