中国自动化学会专家咨询工作委员会指定宣传媒体
免费注册 登录 广告服务 | 客服中心
您现在所在的是:

三菱Mitsubishi

抖音 德嘉 泓格论坛 FLIR红外热像论坛
工控论坛首页 三菱Mitsubishi → 浏览主题: 请教各位:使用FX2N-485-BD如何使电脑与三菱PLC(FX2N-48MR) 通信?
发表新帖 回复该主题
回帖:14个,阅读:9436 [上一页] [1] [2] [下一页]
* 帖子主题:

请教各位:使用FX2N-485-BD如何使电脑与三菱PLC(FX2N-48MR) 通信?

分享到
1289
kuailin
文章数:91
年度积分:50
历史总积分:1289
注册时间:2003/6/21
发站内信
发表于:2004/2/18 19:19:00
#0楼
请教各位:使用FX2N-485-BD如何使电脑与三菱PLC(FX2N-48MR) 通信?


电脑端:UOTEK 公司的UT-201型号 RS2323/RS485转换器
PLC 端:FX2N-485-BD
两者接线如下:
   RS232/RS485               FX2N-485-BD
   T/R+   ----------------->  RDA
   T/R-   ----------------->  RDB

FX2N-485-BD其他接线端子(SDA、SDB、SG)还须如何接线?


PLC的梯形图简单示例如下:

 |
 |---| |--|------------------------------[MOV H1B81 D8120]
 |        |
 |        |------------------------------[MOV H0001 D8121]
 |
 |---[= D200 K1]-------------------------------------(Y1)
 |
 |
 |---------------------------------------------------[END]
 |


上位机用VB6.0编程,简单示例如下:

   Private Sub Form_Load()
       MSComm1.CommPort = 1 '通信口
       MSComm1.Settings = "9600,n,8,1" '固定值即可
       MSComm1.Handshaking = 0
       MSComm1.InputLen = 0
       MSComm1.OutBufferCount = 0
       MSComm1.InBufferCount = 0
       MSComm1.PortOpen = True
   End Sub


  Private Sub Command4_Click()
      MSComm1.Output = Chr(5) + "00FFRR0" + SumCheck("00FFRR0")
      TimeDelay 100
      Text1.Text = MSComm1.Input
  End Sub

   Function SumCheck(Data$) As String
         '和检验函数
     Dim i&
     Dim Check&
     For i = 1 To Len(Data)
       Check = Check + Asc(Mid(Data, i, 1))
     Next
     SumCheck = Right(Hex$(Check), 2)
  End Function


 上面VB程序如果是使用FX-232-BD连接电脑与三菱PLC(FX2N系列),PLC梯形图中
 设置D8120的值为:H6881,通信正常,电脑能监控PLC.
 
 但这里使用RS485通信方式,用上面的程序与设置,结果电脑与PLC不能正常通信。
10912
yanli7234 版主
文章数:3036
年度积分:49
历史总积分:10912
注册时间:2002/11/8
发站内信
2011论坛贡献奖
发表于:2004/2/26 11:43:00
#1楼
用你的方法通讯应该PLC端选择无协议。并且在PLC端需要编程(类似上位机)。
我以前做过一个单向通讯的(PLC只发、上位机只收、用2进制)。
国人当自强,共同努力,抵制日货。
499
jhonhwa
文章数:43
年度积分:-145
历史总积分:499
注册时间:2003/8/15
发站内信
发表于:2004/2/28 13:31:00
#2楼
要站号
mscomm1.output的内容里要包括PLC的站号
1289
kuailin
文章数:91
年度积分:50
历史总积分:1289
注册时间:2003/6/21
发站内信
发表于:2004/2/29 8:27:00
#3楼
有的,上面程序中本是这样的mscomm1.output =chr(5)+ "01FF0RR",是我写错了。但还是不能得到正确的接收数据。
1289
kuailin
文章数:91
年度积分:50
历史总积分:1289
注册时间:2003/6/21
发站内信
发表于:2004/2/29 8:31:00
#4楼
有的,上面程序中本是这样的 MSComm1.Output = Chr(5) + "01FFRR0" + SumCheck("01FFRR0")
是我写错了。但还是不能得到正确的接收数据。返回的字符有时是?,有时是xp等等。PLC的RXD灯、TXD灯有时微弱闪亮,大多更是没有反应。
1289
kuailin
文章数:91
年度积分:50
历史总积分:1289
注册时间:2003/6/21
发站内信
发表于:2004/2/29 8:33:00
#5楼
但我一定要双向动作。你所说的无协议是指什么?PLC端的梯形图
程序又该如何设置?电脑端的通信格式又该如何匹配?
499
jhonhwa
文章数:43
年度积分:-145
历史总积分:499
注册时间:2003/8/15
发站内信
发表于:2004/3/9 14:04:00
#6楼
如果D8120没改过,请使用下面的参数
MSComm1.Settings = "9600,n,7,1"
499
jhonhwa
文章数:43
年度积分:-145
历史总积分:499
注册时间:2003/8/15
发站内信
发表于:2004/3/9 14:05:00
#7楼
对不起,应该是
MSComm1.Settings = "9600,e,7,1"
1289
kuailin
文章数:91
年度积分:50
历史总积分:1289
注册时间:2003/6/21
发站内信
发表于:2004/3/10 20:17:00
#8楼
我都试过所有的设置了,但都不行,好象是“9600,e,7,2”时返回的字符最多,但也不正确。
我想还是其他方面原因吧。
1459
shenhong
文章数:257
年度积分:50
历史总积分:1459
注册时间:2004/3/27
发站内信
发表于:2004/3/28 10:45:00
#9楼
MSComm1.Settings = "9600,N,8,1"
工控学堂推荐视频:

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

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

78.0005