1导言
现在,在我国现场操控总线中,RS-485运用最为遍及。RS-485总线的共模输出电压在-7V至+12V之间,具有按捺共模搅扰的才能,数据传输速率最大为10Mbit/s,当波特率为1200bps时最大的传输间隔理论上可达15千米。RS-485网络所具有的设备简略、简单完结、传输间隔远、保护便利等长处而被许多变频器厂家所选用。文章剖析了工业环境中串行通讯挑选RS-485的原因,论说了根据RS-485三垦变频器与PC机串行通讯的硬件特性,通讯协议及软件完结,试验标明该通讯软件安稳牢靠,能直观的观看变频器的实践运转状况,并能比较便利的进行多组参数的设定和改写。经过此软件,极大的便利了工程师和客户对变频器的操控和把握。
2RS-232与RS-485的比较
常用的串行通讯有两种,一种为RS-232串行通讯,一种为RS-485串行通讯。因为串行通讯运用办法简洁易用,工业操控范畴大多都运用串行通讯作为其数据交换的手法。可是工业设备的运用环境常常比较恶劣,或许会存在噪声或许电源谐波的搅扰,RS-232在如此环境下抗搅扰的才能远不及RS-485,除此之外,RS-232只能是1对1操控,而RS-485则能够完结一对多操控;RS-232一般是9针公头,而RS-485则是两根线就能够操控。因而工业环境下的串行通讯大多都采纳RS-485串行通讯办法。
3三垦变频器与PC的串行通讯
3.1软硬件环境
硬件装备:PC(装备规范RS-232)一台、RS-232/RS-485转换卡一个、ISI通讯卡一块、Inverter三台(三垦变频器ES-0.4KW、SPF-11KW、IPF-90KW)。
软件包含:WindowsXP操作系统、MicrosoftVisualBasic6.0中文版、三垦变频器通讯协议辅导手册等。
3.2通讯协议
三垦各个系列变频器所供给的通讯协议格局如下:
1、指令格局:指令格局如图1所示,各字段意义如表1。
2、指令的具体解说
图1显现了指令的格局,共25条指令,由操作码(OP)决议,分别由A-Q及R、S、x、y、z、a、b、c组成。以指令C和N阐明指令的具体构成,如表2。
表1指令各字段意义
3、变频器所进行的通讯过错处理
变频器假如从上位机接纳到的指令中查看出过错,将进行以下处理:
①在奇偶过错、校验和过错或指令代码未界说时:
回传的过错指令为指令代码“?”。一起,DT项回传一个字节的通讯过错代码。
②在DT项的数据过长或缺乏,不能解说数据内容时:
假如接纳指令的各个指令所界说的数据过长或缺乏、或许接纳指令无法解说时,其过错处理同①。
③超时处理:
接纳开端代码后,假如不能在150ms以内接纳悉数指令将进行超时处理,强制完结接纳状况。这时变频器将回来通讯过错代码“d”。
④通讯过错代码分别为:“p”代表奇偶过错;“s”代表查验和过错;“u”代表未界说操作代码;“d”代表数据过长、数据缺乏或许数据无法解说。
⑤其它过错
有关接纳核算机指令的过错,在上述情况以外,将进行超时处理,对核算机而言为“无应对”。
4、变频器和核算机的指令发送接纳办法
串行通讯的根本程序是一台核算机将指令发送给一台变频器,之后变频器回传应对给核算机。所以,变频器在接纳到了核算机发送出的指令后有必要回传应对。假如核算机在没有得到应对时,仍接连发送多条指令则无法确保正常的作业。
因为变频器反常或许通讯线路反常,核算机或许无法接纳到变频器的应对。为了防止因为等候变频器的应对而形成的通讯程序确定,核算机将依照所设定的2秒或更长以上的时刻来履行接纳超时处理。
表2指令具体内容举例
3.3串行通讯的程序完结
因为篇幅所限,这儿仅介绍通讯部分的完结代码,首要包含:通讯端口的界说,通讯速率的设定,通讯发送、通讯承受、通讯过错处理以及退出等。
首要代码如下:
…
MSComm1.CommPort=1‘挑选1号通讯端口
MSComm1.Settings=”4800,o,8,1″‘设定为4800bps,奇数、数据8位、中止1位
MSComm1.RThreshold=1‘CommmEvert产生当接纳到一个字符时
MSComm1.InputLen=0‘输入缓冲数据清零?
MSComm1.PortOpen=True‘通讯端口翻开?
Timer1.Interval=1000‘接纳超时时刻(ms)1秒
Tx=“*01C”?‘设定向变频器传送的数据
TxLen=Len(Tx)‘得到传送数据长度(校验和与中止位在外)
Sum=0
Fori=1ToTxLen
Sum=Sum+Asc(Mid(Tx,i,1))
Nexti
Sum=((0-Sum)And127)Or64
Tx=Tx+Chr(Sum)+vbCrLf‘在传送代码上增加校验和与中止位(CR+LF)
Timer1.Enabled=True‘发动接纳超时检出计数器
MSComm1.Output=Tx‘向变频器传送数据
EndSub
PrivateSubMSComm1_OnComm()‘[经过Comm事情接纳数据]
DimRxAsString,RxLenAsInteger,SumAsInteger
DimMsgAsString
IfMSComm1.CommEvent<>comEvReceiveThenExitSub‘承认接纳的数据是Comm事情
Do
Rx=Rx+MSComm1.Input‘接纳变频器的数据
DoEvents
LoopUntilRight(Rx,2)=(Chr(13)&Chr(10))‘找到中止位
Timer1.Enabled=False‘撤销超时定时器
RxLen=Len(Rx)-2‘接纳数据字长(中止位在外)
Sum=0‘接纳到的校验和的核算
Fori=1ToRxLen-1
Sum=Sum+Asc(Mid(Rx,i,1))
Nexti
Sum=((0-Sum)And127)Or64
IfMid(Rx,RxLen,1)=Chr(Sum)Then‘校验和的查看
Msg=Left(Rx,RxLen)‘接纳数据(包含校验和,不包含中止位)
Else
Msg=“CheckSumNG”?‘校验和过错显现
EndIf
MsgBox“ReceivedData=”&Msg‘显现接纳数据
MSComm1.PortOpen=False‘[封闭通讯端口]
EndSub
‘在变频器的输出频率为20Hz时,运转该程序,在信息框中将显现“*01C02000@”
4定论
文章首要对RS-232与RS-485进行了比较,然后介绍了根据RS-485三垦变频器与上位机串行通讯的完结,试验标明:使用VB编制的人机界面操作简洁,取得了杰出的有用作用。使用RS-485协议进行串行通讯,能够确保快速、安稳远间隔地传输数据。在现在以及今后的工业操控和其他方面必将得到越来越多的使用。