您现在所在的是:

三菱Mitsubishi

回帖:5个,阅读:5267 [上一页] [1] [下一页]
1015
wangchangru
文章数:26
年度积分:50
历史总积分:1015
注册时间:2004/1/4
发站内信
发表于:2010/11/30 23:24:12
#0楼
我使用了一台FX2N-32MR PLC以及一块FX2N-232-BD,并且编写了一段测试程序,并且我设定输出D200为K100为何在串口调试助手中读出数据为其他符号呢?
附件
6098
fzl_115
文章数:488
年度积分:77
历史总积分:6098
注册时间:2007/1/24
发站内信
发表于:2010/12/1 16:13:35
#1楼
你用的是RS指令啊,也就是说设置的不是与计算机通讯格式,你的串口调试助手读出的数据怎么可能是正确的字符串呢
6098
fzl_115
文章数:488
年度积分:77
历史总积分:6098
注册时间:2007/1/24
发站内信
发表于:2010/12/1 16:39:06
#2楼
N:N网络 PLC并联 专用协议计算机连接 无协议通信
传输标准 RS485 RS485/RS422 RS485/RS422或RS232
传输距离 500m RS485/RS422:500mRS232:15m
连接数量 8站 1:1 1:N(N<=16) 1:1
通信方式 半双工 FX,FX2c,FXon:半双工FX2n: 全双工
数据长度 固定 7bit/8bit
校验 无/奇/偶
停止位 1bit/2bit
波特率 38400bps 19200bps 300/600/1200/2400/4800/9600/19200
头字符 固定 无/有效
尾字符
控制线 ------
协议 --- 格式1/格式4 无
和校验 固定 无/有效
适用机型 FX2n,FXon FX2n,FX,FX2c FX2n,FXon,FX,FX2c
FX系列PLC专用协议通信指令一览
以下将详细列出PLC专用协议通信的指令:
指令 注释  
BR 以1点为单位,读出位元件的状态  
WR 以16点为单位,读出位元件的状态,或以1字为单位,读出字元件的值  
BW 以1点为单位,写入位元件的状态  
WW 以16点为单位,写入位元件的状态,或以1字为单位,写入值到字元件  
BT 以1点为单位,SET/RESET 位元件  
WT 以16点为单位,SET/RESET 位元件,或写入值到字元件  
RR 控制PLC运行RUN  
RS 控制PLC停止STOP  
PC 读出PLC设备类型  
TT 连接测试  

注:位元件包括X,Y,M,S以及T,C的线圈等;
  字元件包括D,T,C,KnX,KnY,KnM等。
FX系列PLC专用协议通信指令格式详解
 约定说明:
     ENQ为请求标志,ASCII值5,VB中以chr(5)表示;
     ACK为正确标志,ASCII值6,VB中以chr(6)表示;
     STX为请求标志,ASCII值2,VB中以chr(2)表示;
     EXT为请求标志,ASCII值3,VB中以chr(3)表示;
     表格中红色字为需要求和效验的部分;
     和效验为每一项的ASCII值的总和转换成十六进制后区低两位;
     站号、PLC号、元件数量、和效验都是以十六进制表示;
     等待延时为0-150毫秒,以十六进制0H-FH表示,如100ms为AH。
  1、批量读出位元件--BR指令
   格式:
1 2 3 4 5 6 7 8 15 16 17
PC侧: ENQ 站号 PLC号 BR 延时 首地址 数量 和效验 ACK 站号 PLC号
PLC侧: STX 站号 PLC号 数据 EXT 和效验
9 10 11 12 13 14
   [注] 上述中:1、"PLC号"系统默认为"FF";2、"首地址 "应以十进制表示,如首地址"X0018"表示从X寄存器的第18地址单元开始读取I/O量;3、"数量"表示读取的I/O量个数;4、"和效验"是指从"站号"到"数量"之间的各代码的ASCII码的累加和;5、PLC侧的响应码中"和效验"是指从"站号"到"EXT"之间的各代码的ASCII码的累加和。6、可以读出"X"、"Y"和"M"寄存器的内容。
例如:要读出站号为0的Fx2n系列PLC的X00到X08共9点的状态值,延时100ms,假设采用Communication Format(D8120)的Format 1 方式::
注 释: 请求 站号 PLC号 命令 延时 元件首地址 元件数量 和效验
代 码: ENQ 0 0 F F B R A X 0 0 0 0 0 9 4 2
ASCII码: 05H 30H 30H 46H 46H 42H 52H 41H 58H 30H 30H 30H 30H 30H 35H 34H 32H
  您只要将以上兰色部分的代码以字符串形式(VB中可以表示为CHR(5)&" 00FFBRAX00000942")发送到PLC,就会有正确的回应信息,如下:
注 释: 头 站号 PLC号 元件首地址 尾 和效验
代 码: STX 0 0 F F 0 0 1 1 0 1 1 0 1 EXT 0 5
ASCII码: 02H 30H 30H 46H 46H 30H 30H 31H 31H 30H 31H 31H 30H 31H 03H 30H 35H
  若发送码有误,则有以下回应:
注 释: 头 站号 PLC号 和效验
代 码: NAK 0 0 F F 0 6
ASCII码: 15H 30H 30H 46H 46H 30H 36H

2、批量读出字元件--WR指令
  格式:
1 2 3 4 5 6 7 8 15 16 17
PC侧: ENQ 站号 PLC号 WR 延时 首地址 数量 和效验 ACK 站号 PLC号
PLC侧: STX 站号 PLC号 数据 EXT 和效验
9 10 11 12 13 14
  该命令使用方法与1(BR)命令相同,不再赘述。
  3、批量写入位元件--BW指令
  格式:
1 2 3 4 5 6 7 8 9
PC侧: ENQ 站号 PLC号 BW 延时 首地址 数量 写入值 和效验
PLC侧: ACK 站号 PLC号
10 11 12
  4、批量写入字元件--WW指令(M寄存器100单元置"1")
  格式:01FFWWAM01000100010C
1 2 3 4 5 6 7 8 9
PC侧: ENQ 站号 PLC号 WW 延时 首地址 数量 写入值 和效验
PLC侧: 05H 01 FF A M0100 01 0001 0C ACK 站号 PLC号
10 11 12
这个是 PLC 与计算机串口通讯协议  你PLC程序设置下 看下串口调试助手收到的字符串是不是按上面的数据帧对应的字符串
6098
fzl_115
文章数:488
年度积分:77
历史总积分:6098
注册时间:2007/1/24
发站内信
发表于:2010/12/1 16:55:23
#3楼
读写时的软设备地址(按字节8位)
S0-S999:0000H-007CH
X0-X177:0080H-008FH
Y0-Y177:00A0H-00AFH
T0-T255:00C0H-00DFH
M0-M1023:0100H-017FH
C0-C7:01C0H-01DFH
D0-D7:1000H (满足公式 Address = Index*2+1000)
置位时软设备地址(按字节8位)
S0-S999:0000H-03E7H
X0-X177:0400H-047FH
Y0-Y177:0500H-057FH
T0-T255:0600H-06FFH
M0-M1023:0800H-0BFFH
M8000-M8255:0F00H-0FFFH
C0-C255:0E00H-0EFFH
这是PLC内部软元件地址
1015
wangchangru
文章数:26
年度积分:50
历史总积分:1015
注册时间:2004/1/4
发站内信
发表于:2010/12/2 8:39:42
#4楼
感谢115不吝赐教,特别是通讯方面还请多指教,谢谢!
562
zeep1
文章数:3
年度积分:50
历史总积分:562
注册时间:2014/4/11
发站内信
发表于:2014/4/11 22:13:55
#5楼
回复 #3楼 fzl_115
大哥,知道FX1S的软元件地址和寄存器地址吗?因为我在做顾美的PLC:EX2N-16MR-43H-485这个PLC
顾美的网站说顾美的EX2N通讯协议和FX1S的通讯协议是一致的,编程选2N指令,和人机通讯选FX1S。

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

78.0005