您现在所在的是:

电脑编程

回帖:86个,阅读:68202 [上一页] [1] [2] [3] [4] [5] [6] [7] [8] [9] [下一页]
* 帖子主题:

Modbus 通讯协议编程

912
jeffery_44
文章数:3
年度积分:50
历史总积分:912
注册时间:2007/6/12
发站内信
发表于:2007/7/9 8:35:00
#70楼
楼主果然强,我是新手,希望能与大家一起交流
jeffery_naruto@yahoo.com.cn
902
huanying205
文章数:1
年度积分:50
历史总积分:902
注册时间:2007/7/12
发站内信
发表于:2007/7/12 9:53:00
#71楼
有没有用C#.Net编写基于Modbus协议的串口通信的?
904
jack_hank
文章数:4
年度积分:50
历史总积分:904
注册时间:2005/11/10
发站内信
发表于:2007/9/10 8:53:00
#72楼
谢谢
928
012258
文章数:9
年度积分:50
历史总积分:928
注册时间:2007/9/10
发站内信
发表于:2007/9/10 20:25:00
#73楼
xiexieixeixeixieixeixie
902
ssyqh
文章数:1
年度积分:50
历史总积分:902
注册时间:2007/9/19
发站内信
发表于:2007/9/19 23:16:00
#74楼
谢谢!
1032
zaxife
文章数:55
年度积分:50
历史总积分:1032
注册时间:2007/1/9
发站内信
发表于:2007/9/25 1:00:00
#75楼
觉得程序有点怪,和我编的不太一样。
你的程序真的可以正常使用么?

如果是RTU协议时,没有定义串口中断的接受字符个数的话,接受到的数据包会出错的吧。
904
vlink
文章数:2
年度积分:50
历史总积分:904
注册时间:2007/11/9
发站内信
发表于:2007/11/9 22:52:00
#76楼
OK
902
dxgp
文章数:1
年度积分:50
历史总积分:902
注册时间:2008/6/11
发站内信
发表于:2008/6/11 11:10:00
#77楼
你好 我想知道 你的这篇文章是如何的解决的?
以下是引用kuailin在2004-1-10 21:49:00的发言:
你好:
  在网上拜读了你的文章( Modbus 通讯协议编程),本人正需要有此方面的帮助,不知
能否指点一二。谢谢。如果按你说的Modbus通讯,如何设置变频器各项参数??

台达变频器(一台)与电脑如何通信?

硬件:
台达变频器是:VFD015M21A系列
通信模块:UOTEK 公司的UT-201型号 RS2323/RS485转换器

RS232/RS485 转换器与VFD015M21A变频器的接线如下:
  RS232/RS485               变频器 
 T/R-   ----------------->  SG-
 T/R+   ----------------->  SG+

变频器的参数设置如下:
  参数      设置值   (备注)
  P00       d03      (主频率输入通信输入RS485)   
       注:   端子插梢跳线 :J5,J6,J7皆为1脚与2脚连接
  P01       d03      (运转指令由通信输入控制,键盘STOP有效) 
  P66       d60.0    (通讯主频设定)
  P88       d01      (RS485通讯地址)
  P89       d01      (资料传输速度,9600位元/秒)
  P92       d00      (通讯资料格式,)
  P113      d00      (通讯BUS选择,ASCII BUS模式)
(上面参数设置是否有误?还须设置其他的参数吗?)



软件:
上位机用VB6.0编程语言.
引入MSCOMM控件,其属性设置如下:
 .Comport =1 
 .HandShaking=0
 .InputMode =0
 .InBufferSize=1024
 .OutBufferSize =512
 .Setting="9600,n,7,2"
其他值默认


本人依据VFD015M21A变频器的通信资料格式,用VB设计一个窗体,然后在其上
放置一个命令按钮,整个程序的代码如下:


Private Sub Command1_Click()
     '读取驱动器01位置的P04参数
   MSComm1.Output = Chr(2) + "010804" + Chr(3) + "30"
TimeDelay 100   '为一个时间延时函数
 Text1.Text = MSComm1.Input
End Sub

Private Sub Command2_Click()
     '让驱动器启动反转
  MSComm1.Output = Chr(2) + "0102" + Chr(3) + SumChk("0102" + Chr(3))
End Sub

Private Sub Command3_Click()
     '让驱动器停止运转
  MSComm1.Output = Chr(2) + "0100" + Chr(3) + SumChk("0100" + Chr(3))
End Sub

Private Sub Form_Load()
MSComm1.PortOpen = True
End Sub

Private Function SumChk(Dats$) As String  '和检验函数
    Dim i&
    Dim CHK&
    For i = 1 To Len(Dats)
        CHK = CHK + Asc(Mid(Dats, i, 1))
    Next i
    SumChk = Right(Hex$(CHK), 2)
End Function 
         
结果上面的程序并不能与变频器通信,发送的命令变频器并不响应,并且MSCOMM
控件也没有返回值.

请问发生错误的原因是在哪一部分?是变频器参数设置部分或是VB程序中发送
给变频器的命令不正确??请问如何修正?

如果有简单的示例寄我,不胜感谢.lj-000@163.net


改用台达变频器是:VFD015M23A系列变频器试验,变频器设置同上(没有端子插
梢跳线,没有P113设置),VB程序同上,发送三个不同命令时,结果时有同一个p字
符返回, 但发送命令还是起不了作用.这又是什么原因 ?






我想知道你的这篇文章是如何解决的,能够把你的改过后能够应用的程序发给我吗?谢谢
gaop-002@163.com  如果能够发过来,真得要谢谢你!!!
926
liwengen
文章数:8
年度积分:50
历史总积分:926
注册时间:2008/4/6
发站内信
发表于:2008/6/24 14:18:00
#78楼
这是好东西啊
正在找协议编程的例子
912
zyoojdf
文章数:4
年度积分:50
历史总积分:912
注册时间:2007/4/25
发站内信
发表于:2008/6/24 14:57:00
#79楼
谢谢,看看

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

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

171.6011