你好 我想知道 你的这篇文章是如何的解决的?
以下是引用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 如果能够发过来,真得要谢谢你!!!