发表于:2014/4/11 15:03:10
#0楼
变频器型号 FC302系列
通信协议 FC协议
一、控制启动停止
启动发送协议
控制字格式:开始加速度1 02 0E 01 10 CD 00 00 00 00 00 00 04 7C 20 00 BBC
反向开始 加速度1 02 0E 01 10 CD 00 00 00 00 00 00 94 7C 20 00 BBC
停止减速度1 02 0E 01 10 CD 00 00 00 00 00 00 04 3C 00 00 BBC
自由停车指令 02 0E 01 10 CD 00 00 00 00 00 00 04 74 00 00 BBC
加速度2开始 02 0E 01 10 CD 00 00 00 00 00 00 06 7C 20 00 BBC
及速度2反向开始 02 0E 01 10 CD 00 00 00 00 00 00 86 7C 20 00 BBC
二、读取变频器中的功率、电流和扭矩信号命令
16-16 1616转化成16进制 650 1650控制信号 1为外读信号 650地址
扭矩 比例系数为0.1
02 0E 01 16 50 00 00 00 00 00 00 00 00 00 00 BBC
16-10 1610转化成16进制 64A 164A控制信号 1为外读信号 64A地址
功率 比例系数为0.01
16-14 1614转化成16进制 64E 164E控制信号 1为外读信号 650地址
电流 比例系数为0.01
三、往里变频器里写命令,写入加速时间
02 0E 01 E1 55 00 00 00 00 46 50 00 00 00 00 BBC
1 55= 3-41加速度一的上升时间
180X100 转化成16进制 46 50 分别对应着十进制是70 80
四、写入时间的VB代码,与童鞋们分享
Dim freq As Single
FreqMax = 50
If Form1.MSComm1.PortOpen = False Then
Form1.MSComm1.PortOpen = True
End If
'设定"9600,N,8,1", .InputLen=0, .InputMode=1 并打开端口,设定 InputMode 读取二进制数据
'CommPort = 3
OutputArr(0) = &H2 '起始字节STX=02
OutputArr(1) = &HE '电码长度
OutputArr(2) = &H1 '变频器地址=1
OutputArr(3) = &HE1 'PKE 高字节
OutputArr(4) = &H55 'PKE 低字节
OutputArr(5) = &H0
OutputArr(6) = &H0
OutputArr(7) = &H0
OutputArr(8) = &H0
OutputArr(9) = JssyL_js_Tim0H
OutputArr(10) = JssyL_js_Tim0L
OutputArr(11) = &H0 '控制字高字节
OutputArr(12) = &H0 '控制字低字节
OutputArr(13) = &H0 '频率高字节
OutputArr(14) = &H0 '频率低字节
Call FinalBCC(14) 'BCC校验
OutputBuffer = OutputArr
Form1.MSComm1.Output = OutputBuffer '发送缓冲区中的二进制数据
For JJJ = 0 To 1000: Next JJJ
CommStartTime = Timer
Do While Form1.MSComm1.InBufferCount < 15 '等待直到输入缓冲区有 16个字节
If (Timer - CommStartTime) > 2 Then
Temp = MsgBox("与变频器通讯超时错误,通讯端口只能选COM2," & Chr(13) & Chr(10) & "请检查电源及通讯端口连线!", , "通讯错误")
Exit Sub
End If
Loop
InputBuffer = Form1.MSComm1.Input '往缓冲区存二进制数据
InputArr = InputBuffer '赋值于字节数组以便处理
' DL_Data = Format((InputArr(9) * 256 + InputArr(10)) * 0.01, "#0.00")
CommInputCheck = &H0
For i = 0 To 14
CommInputCheck = CommInputCheck Xor InputArr(i)
Next i
If InputArr(15) <> CommInputCheck Then
MsgBox ("计算机读变频器数据出错!")
End If
If Form1.MSComm1.PortOpen = True Then
Form1.MSComm1.PortOpen = False
End If
' MsgBox "已经将转速变为500转!"
通信协议 FC协议
一、控制启动停止
启动发送协议
控制字格式:开始加速度1 02 0E 01 10 CD 00 00 00 00 00 00 04 7C 20 00 BBC
反向开始 加速度1 02 0E 01 10 CD 00 00 00 00 00 00 94 7C 20 00 BBC
停止减速度1 02 0E 01 10 CD 00 00 00 00 00 00 04 3C 00 00 BBC
自由停车指令 02 0E 01 10 CD 00 00 00 00 00 00 04 74 00 00 BBC
加速度2开始 02 0E 01 10 CD 00 00 00 00 00 00 06 7C 20 00 BBC
及速度2反向开始 02 0E 01 10 CD 00 00 00 00 00 00 86 7C 20 00 BBC
二、读取变频器中的功率、电流和扭矩信号命令
16-16 1616转化成16进制 650 1650控制信号 1为外读信号 650地址
扭矩 比例系数为0.1
02 0E 01 16 50 00 00 00 00 00 00 00 00 00 00 BBC
16-10 1610转化成16进制 64A 164A控制信号 1为外读信号 64A地址
功率 比例系数为0.01
16-14 1614转化成16进制 64E 164E控制信号 1为外读信号 650地址
电流 比例系数为0.01
三、往里变频器里写命令,写入加速时间
02 0E 01 E1 55 00 00 00 00 46 50 00 00 00 00 BBC
1 55= 3-41加速度一的上升时间
180X100 转化成16进制 46 50 分别对应着十进制是70 80
四、写入时间的VB代码,与童鞋们分享
Dim freq As Single
FreqMax = 50
If Form1.MSComm1.PortOpen = False Then
Form1.MSComm1.PortOpen = True
End If
'设定"9600,N,8,1", .InputLen=0, .InputMode=1 并打开端口,设定 InputMode 读取二进制数据
'CommPort = 3
OutputArr(0) = &H2 '起始字节STX=02
OutputArr(1) = &HE '电码长度
OutputArr(2) = &H1 '变频器地址=1
OutputArr(3) = &HE1 'PKE 高字节
OutputArr(4) = &H55 'PKE 低字节
OutputArr(5) = &H0
OutputArr(6) = &H0
OutputArr(7) = &H0
OutputArr(8) = &H0
OutputArr(9) = JssyL_js_Tim0H
OutputArr(10) = JssyL_js_Tim0L
OutputArr(11) = &H0 '控制字高字节
OutputArr(12) = &H0 '控制字低字节
OutputArr(13) = &H0 '频率高字节
OutputArr(14) = &H0 '频率低字节
Call FinalBCC(14) 'BCC校验
OutputBuffer = OutputArr
Form1.MSComm1.Output = OutputBuffer '发送缓冲区中的二进制数据
For JJJ = 0 To 1000: Next JJJ
CommStartTime = Timer
Do While Form1.MSComm1.InBufferCount < 15 '等待直到输入缓冲区有 16个字节
If (Timer - CommStartTime) > 2 Then
Temp = MsgBox("与变频器通讯超时错误,通讯端口只能选COM2," & Chr(13) & Chr(10) & "请检查电源及通讯端口连线!", , "通讯错误")
Exit Sub
End If
Loop
InputBuffer = Form1.MSComm1.Input '往缓冲区存二进制数据
InputArr = InputBuffer '赋值于字节数组以便处理
' DL_Data = Format((InputArr(9) * 256 + InputArr(10)) * 0.01, "#0.00")
CommInputCheck = &H0
For i = 0 To 14
CommInputCheck = CommInputCheck Xor InputArr(i)
Next i
If InputArr(15) <> CommInputCheck Then
MsgBox ("计算机读变频器数据出错!")
End If
If Form1.MSComm1.PortOpen = True Then
Form1.MSComm1.PortOpen = False
End If
' MsgBox "已经将转速变为500转!"