三菱PLC与上位机通讯
三菱PLC通讯
三菱PLC与上位机通讯
三菱PLC:FX1N+FX1N-232-BD
FX2N+FX2N-232-BD
计算机:WindowsXP中文企业版+VisualBasic6.0中文企业版
Windows98中文版+VisualBasic6.0中文企业版
两者之间连接使用的是FX-232CAB-1电缆线(2-3,3-2,4-6(8),5-5)一(三菱PLC的设置三菱FXPLC在进行计算机链接(专用协议)和无协议通讯(RS指令)时均须对通讯格式(D8120)进行设定。其中包含有波特率、数据长度、奇偶校验、停止位和协议格式等。在修改了D8120的设置后,确保关掉PLC的电源,然后再打开。
止匕外,对于采用RS485形式1:N计算机链接的还必须对站点号(D8121)进行设定。设定的范围从00H到0FH(即0到15)。
在这里对D8120采用下述设置:
b15b0
0110100010001110
688E
即数据长度为7位,偶校验,2位停止位,波特率为9600bps,无标题符和终结符,采用计算机链接(RS-232C),自动添加和校验码,采用专用协议格式1。
同时设定站号为00具体设定如下所示:
Q一—|[MCE wza]
仙LNIZl:j
H I I1口
L_:
FXPLC进行计算机链接时可用的专用协议有两种:格式1和格式4。两种格式
的差别在于是否在每一个块上添加了CR+LF,其中添加了CR+LF的是格式4。
在这里采用格式1。
二(上位机程序的编制
这里采用Microsoft公司的VisualBasic6.0中文企业版编制上位机程序。
VisualBasic中提供了一个名为MSCom的通信控件便于设计用行通信的程序。
MSComm件的主要属性有:
1(CommPort属性
CommPorH性用于指定所要使用的串行端口的号码。虽然Windows操作系统可以容纳最多256个串行通信端口,不过VisualBasic的MSComm件则仅限于16个端口。2(Settings 属性
Settings属性用于设置初始化参数。以字符串的形式设置波特率、奇偶校验、
数据位、停止位等4个参数。其格式为“BBBB,P,D,S',其中BBBBft示波特率,P表示奇偶校验位检查方式,D表示数据位数,S表示停止位数。一般情况下,欧美仪器习惯使用“9600,n,8,1”当成设置值;而日
本仪器则习惯使用“9600,e,7,2”作为设置值。Settings设置完成之后,所传输及接受的字符串便以此设置为准,
使用RS-232通信的双方,Settings必须完全一样,彼此才能顺利地通信,否则双方将无法正确接收到彼此所传输的信号。所以,该属性的设置必须和三菱PLC中
D8120的相关设置保持一致。在这里,统一采用“9600,e,7,2”的设定。
三菱PLC通讯
3(PortOpen属性
PortOpen属性用于设置通信连接端口的状态。在使用串行端口之前必须先将要
使用的串行端口打开。在上位机程序中应进行如下设定:
PrivateS ubForm_Load()′窗体载入事件
MSComml.CommPort=1选择端口号
MSComml.Settings="9600,e,7,2"'设置端口属性
MSComml.PortOpen=True'打开端口
EndSub
4(Output属性
MSComm件的Output属性提供了发送的功能,当从计算机向可编程控制器写入数据或从可编程控制器读取数据时,上位机应当先发出以下格式(格式1)的指令
字符串:ENQ站号PC号命令消息等待时间字符区域A和校验代码
其中站号为在D8121中的设定值,这里是:00,PC号对于FX系列为:FF。因为ENQACKNA◎通信控制字符是不可见字符,所以先用Chr函数对其进行赋值:
ENQ=Chr(5)ACK=Chr(6)NAK=Chr(&H15)
然后在上位机程序中写入以下代码即可发出指令:
MSComm1.Output=ENQ&00FF命令><;肖息等彳f时间><;字符区域A><ffi校验代码
>"5(Input属性
与Output属性相反,Input属性提供了接收数据的功能。它将对方传到输入缓冲区中的数据读进程序中,并清除缓冲区中已被读取的数据。
a.如果是从计算机向可编程控制器写入数据时,接收到从可编程控制器返回的应该是以下格式的字符串:
ACK站号PC号或者NAK站号PC号错误代码
前一种表示可编程控制器已经正确接收到从计算机发来的指令,后一种表示可编程控制器未正确接收到从计算机发来的指令。
b.如果是从计算机向可编程控制器读取数据时,接收到从可编程控制器返回
的应该是以下格式的字符串
STX站号PC号字符区域BETX和校验代码或者NAK站号PC号错误代码如果要连续读取数据可以利用Timer控件。将Output和Input放在Timer控件的Timer事件中即可。程序会以Timer控件的Interval属性中设置的间隔去发送指令和接收数据。对于MSComm件的其他一些属性使用VB的默认值即可。
在串行通信传输的应用中,经常使用的VisualBasic中的字符串处理函数如
下:Chr函数:返回含有特定ANSI或DBC*符码的字符串。
Asc函数:返回字符串第一个字符的ANSI或DBC*符码。
Len函数:返回以字符数为单位的字符串长度。
Mid函数:取得字符串中特定数量的字符,可指定开始获取的位置和长度。
Left函数:取得字符串的左边固定字符数的字符串。
Right函数:取得字符串的右边固定字符数的字符串。
Val函数:把字符串转换为数值,可以将8进制或16进制的字符串转换为10进制。Hex 函数:返回以十六进制数值表示的字符串。
三菱PLC通讯
RS指令应用一
三菱PLC与计算机利用RS指令进行通讯(通讯手册9-14例)三菱PLC:FX1N+
FX1N-232-BD
计算机:WindowsXP中文企业版+VisualBasic6.0中文企业版
Windows98中文版+VisualBasic6.0中文企业版两者之间连接使用的是
FX-232CAB-1电缆线(2-3,3-2,4-6(8),5-5)一(三菱PLC的设置
三菱FXPLC在进行计算机链接(专用协议)和无协议通讯(RS指令)时均须对通讯格式
(D8120)进行设定。其中包含有波特率、数据长度、奇偶校验、停止位和协议
格式等。在
修改了D8120的设置后,确保关掉PLC的电源,然后再打开。在这里对D8120采用下述设置:
b15b0
0000010010001111
048F
即数据长度为8位,偶校验,2位停止位,波特率为9600bps,无标题符和终结符,没有添
加和校验码,米用无协议。
PLC程序如下:
1-_||1pMtf E K
三菱plc字符串截取it史修
H>什中口
二(上位机程序的编制
完整程序代码及注释如下:
PrivateSubcmd1_Click()'发送按钮
lbl1.Caption=""
Iftxt1.Text=""Then'若发送数据栏中未键入指令则提示键入指令
lbl1.Caption="Pleaseinputdata"Else
MSComm1.Output=txt1.Text'发送指令
Timer1.Enabled=True'触发延时接收
EndIf
三菱PLC通讯

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。