文档库 最新最全的文档下载
当前位置:文档库 › VB控件Mscomm控件与PLC进行RS485(Modbus)通讯源码

VB控件Mscomm控件与PLC进行RS485(Modbus)通讯源码

VB控件Mscomm控件与PLC进行RS485(Modbus)通讯源码
VB控件Mscomm控件与PLC进行RS485(Modbus)通讯源码

VB控件Mscomm控件与PLC进行RS485(Modbus)通讯源码

本人用的是Modbus RTU通讯模式,通过计算机串口转RS485与外围设备通行通讯,读写外围设备指定地址里的数据,从而达到自动化控制远端设备。

Dim HiByte As Byte

Dim LoByte As Byte

Dim CRC16Lo As Byte

Dim CRC16Hi As Byte

Dim ReturnData(1) As Byte

Dim K As Integer

Dim CmdLenth As Integer

Private Sub Command1_Click()

K = Text9.Text '写6 个字节

Text13.Text = ""

'=========== 数组赋值输入代码=============================================================================== ========

'<< 算法一>>

Dim WriteStr() As Byte

Dim u As Integer

ReDim WriteStr(K + 2)

For u = 0 To K

WriteStr(u) = Val("&H" & Text1(u).T ext)

Next

'<< 算法二>>

Dim CRC_2() As Byte

Dim v As Integer

ReDim CRC_2(K)

For v = 0 To K

CRC_2(v) = Val("&H" & Text1(v).Text)

Next

'============================================================================== ====================

Call CRC161(CRC_2())

Call CRC16(WriteStr(), K)

MSComm1.InBufferCount = 0

'========== 显示发送代码=============================================================================== =========

Dim m As Integer

For m = 0 To 23

If m <= K Then

Text8(m).Text = Hex(WriteStr(m))

Else

Text8(m).Text = ""

End If

Next

'============================================================================== ====================

WriteStr(K + 1) = LoByte

WriteStr(K + 2) = HiByte

' 发送代码

Text4.Text = ""

Dim g As Integer

For g = 0 To K + 2

Text4.Text = Text4.Text + " " + Hex(WriteStr(g))

Next

'写命令发送后,当接收到8 个字节时中断

CmdLenth = 8

MSComm1.RThreshold = CmdLenth

MSComm1.Output = WriteStr

End Sub

Private Sub Command2_Click()

End

End Sub

Private Sub Command3_Click()

Label34.Caption = "="

Text13.Text = ""

K = Text9.Text '写6 个字节

'=========== 数组赋值输入代码=============================================================================== ========

'<< 算法>>

Dim CRC_2() As Byte

Dim v As Integer

ReDim CRC_2(K)

For v = 0 To K

CRC_2(v) = Val("&H" & Text1(v).Text)

Next

'============================================================================== ====================

Call CRC161(CRC_2())

Call CRC16(WriteStr(), K)

MSComm1.InBufferCount = 0

'========== 显示发送代码=============================================================================== =========

Dim m As Integer

For m = 0 To 23

If m <= K Then

Text8(m).Text = Hex(WriteStr(m))

Else

Text8(m).Text = ""

End If

Next

'============================================================================== ====================

WriteStr(K + 1) = LoByte

WriteStr(K + 2) = HiByte

' 发送代码

Text4.Text = ""

Dim g As Integer

For g = 0 To K + 2

Text4.Text = Text4.Text + " " + Hex(WriteStr(g))

Next

'读命令发送后,当接收5 + SendStr(5) * 2 个字节时产生中断

CmdLenth = 5 + WriteStr(5) * 2

MSComm1.RThreshold = CmdLenth

MSComm1.Output = WriteStr '发送命令

'****************************************************************************** **********************************************************

'**********************************************************

*********************************************************

'****************************************************************************** **********************************************************

' Dim sAddr As String

'

' Dim CheckString As String

' Dim CheckCode As String

' Dim CmdCode As String

' Dim Sum As Integer

' Dim a As Integer

' Dim tmp As String

'a = 0

'tmp = 0

'

'

'

' Do While Len(tmp) < 8

'

' tmp = tmp + MSComm1.Input

' testNO.Caption = testNO.Caption + " " + Str(Hex(Asc(tmp)))

' a = a + 1

' If a >= 3000 Then

' MSComm1.PortOpen = False

'Exit Function

' Exit Do

' End If

' Loop

'Label33.Caption = tmp

'Text16.Text = Len(tmp)

'Dim ns As Integer

'For ns = 1 To Len(tmp)

'Label34.Caption = Label34.Caption + "+" + Str(Asc(Mid(tmp, ns, 1))) '

'Next

'Label35.Caption = Str(Val(Asc(Mid(tmp, 6, 1))) / 10)

'

'

' tmp = Mid$(tmp, 6, 4)

'

'

' Dim strHex As String

' Dim Hex2Dec As Long

' Dim strTmp As String

' Dim longTmp As Long

' Dim longDec As Long

' Dim intLen As Integer

' Dim n1 As Integer

'

' strHex = Right$(tmp, 2) + Left$(tmp, 2)

'

' intLen = Len(strHex)

' For n1 = 1 To intLen

' strTmp = Mid(strHex, n1, 1)

' Select Case Asc(strTmp)

' Case 48 To 57

' longTmp = Val(strTmp)

' Case 65 To 70

' longTmp = Asc(strTmp) - 55

' Case Else

' Hex2Dec = 0

' ' Exit Function

' End Select

' Text13.T ext = Text13.Text + "+" + Str(Asc(strTmp))

' longDec = longDec + longTmp * 16 ^ (intLen - n1)

' Next n1

'

' Hex2Dec = longDec

' Text13.T ext = Hex2Dec

'****************************************************************************** **********************************************************

'**********************************************************

*********************************************************

'****************************************************************************** **********************************************************

End Sub

Private Sub MSComm1_OnComm()

Dim Ne As Integer

Select Case https://www.wendangku.net/doc/7f14333056.html,mEvent

Case comEvReceive

Dim Buffer As Variant

MSComm1.InputMode = comInputModeBinary

MSComm1.InputLen = 0

Buffer = MSComm1.Input

For Ne = LBound(Buffer) To UBound(Buffer)

Text13.Text = Text13.Text & " + " & Buffer(Ne)

Label34.Caption = Buffer(3) & " " & Buffer(4)

Next Ne

Case Else

End Select

Beep

End Sub

Private Sub Command4_Click()

End Sub

Private Sub Command5_Click()

Label34.Caption = "="

Private Sub Form_Load()

MSComm1.Settings = "9600,N,8,1"

https://www.wendangku.net/doc/7f14333056.html,mPort = 1

MSComm1.SThreshold = 0

If Not MSComm1.PortOpen Then MSComm1.PortOpen = True

End Sub

Private Sub Timer1_Timer()

'显示<< 算法一>>结果

Text2.Text = Hex(HiByte)

Text3.Text = Hex(LoByte)

'显示<< 算法二>>结果

Text6.Text = Hex(CRC16Hi)

Text7.Text = Hex(CRC16Lo)

If Text5.Text <> "" Then '十进制转十六进制

Text10.Text = Hex(T ext5.Text)

End If

If Text11.Text <> "" Then '十六进制转十进制

Text12.Text = Val("&H" & T ext11.Text)

End If

Text14.Text = MSComm1.OutBufferCount

End Sub

'========== CRC校验<< 算法二>> =============================================================================== =========

Function CRC161(data() As Byte) As String 'CRC计算函数

' Dim CRC16Lo As Byte, CRC16Hi As Byte 'CRC寄存器

Dim CL As Byte, CH As Byte '多项式码&HA001

Dim SaveHi As Byte, SaveLo As Byte

Dim I As Integer

Dim Flag As Integer

CRC16Lo = &HFF

CRC16Hi = &HFF

CL = &H1

CH = &HA0

For I = 0 To UBound(data)

CRC16Lo = CRC16Lo Xor data(I) '每一个数据与CRC寄存器进行异或

For Flag = 0 To 7

CRC16Hi = CRC16Hi \ 2 '高位右移一位

CRC16Lo = CRC16Lo \ 2 '低位右移一位

If ((SaveHi And &H1) = &H1) Then '如果高位字节最后一位为1

CRC16Lo = CRC16Lo Or &H80 '则低位字节右移后前面补1

End If '否则自动补0

If ((SaveLo And &H1) = &H1) Then '如果LSB为1,则与多项式码进行异或CRC16Hi = CRC16Hi Xor CH

CRC16Lo = CRC16Lo Xor CL

End If

Next Flag

Next I

Dim ReturnData(1) As Byte

ReturnData(0) = CRC16Hi 'CRC高位

ReturnData(1) = CRC16Lo 'CRC低位

asd = Right("00" + Hex(CRC16Lo), 2) + Right("00" + Hex(CRC16Hi), 2) End Function

Private Sub mscomm_OnComm()

End Sub

宇电AI501 RS485通讯协议说明

AIBUS通讯协议说明(V7.0) AIBUS是厦门宇电自动化科技有限公司为AI系列显示控制仪表开发的通讯协议,能用简单的指令实现强大的功能,并提供比其它常用协议(如MODBUS)更快的速率(相同波特率下快3-10倍),适合组建较大规模系统。AIBUS采用了16位的求和校正码,通讯可靠,支持4800、9600、19200等多种波特率,在19200波特率下,上位机访问一台AI-7/8系列高性能仪表的平均时间仅20mS,访问AI-5系列仪表的平均时间为50mS。仪表允许在一个RS485通讯接口上连接多达80台仪表(为保证通讯可靠,仪表数量大于60台时需要加一个RS485中继器)。AI系列仪表可以用PC、触摸屏及PLC作为上位机,其软件资源丰富,发展速度极快。基与PC的上位机软件广泛采用WINDOWS作为操作环境,不仅操作直观方便,而且功能强大。最新的工业平板触摸屏式PC的应用,更为工业自动化带来新的界面。这使得AIDCS系统价格大大低于传统DCS系统,而性能及可靠性也具备比传统DCS系统更优越的潜力,V7.X版本AI-7/8系列仪表允许连续写参数,写给定值或输出值,可利用上位机将仪表组成复杂调节系统。 一、接口规格 AI系列仪表使用异步串行通讯接口,接口电平符合RS232C或RS485标准中的规定。数据格式为1个起始位,8位数据,无校验位,1个或2个停止位。通讯传输数据的波特率可调为4800~19200 bit/S,通常用9600 bit/S,单一通讯口所连接仪表数量大于40台或需要更快刷新率时,推荐用19200bit/S,当通讯距离很长或通讯不可靠常中断时,可选4800bit/S。AI仪表采用多机通讯协议,采用RS485通讯接口,则可将1~80台的仪表同时连接在一个通讯接口上。 RS485通讯接口通讯距离长达1KM以上(部分实际应用已达3-4KM),只需两根线就能使多台AI仪表与计算机进行通讯,优于RS232通讯接口。为使用普通个人计算机PC能作上位机,可使用RS232/RS485或USB/RS485型通讯接口转换器,将计算机上的RS232通讯口或USB口转为RS485通讯口。宇电为此专门开发了新型RS232/RS485及USB/RS485转换器,具备体积小、无需初始化而可适应任何软件、无需外接电源、有一定抗雷击能力等优点。 按RS485接口的规定,RS485通讯接口可在一条通讯线路上连接最多32台仪表或计算机。需要联接更多的仪表时,需要中继器,也可选择采用75LBC184或MAX487等芯片的通讯接口。目前生产的AI仪表通讯接口模块通常采用75LBC184,这种芯片具备一定的防雷击和防静电功能,且无需中继器即可连接约60台仪表。 AI仪表的RS232及RS485通讯接口采用光电隔离技术将通讯接口与仪表的其他部分线路隔离,当通讯线路上的某台仪表损坏或故障时,并不会对其它仪表产生影响。同样当仪表的通讯部分损坏或主机发生故障时,仪表仍能正常进行测量及控制,并可通过仪表键盘对仪表进行操作,工作可靠性很高。16位校验码的正确性是简单奇偶校验的30000倍,基本能保证数据可靠性。并且同一网络上有其他公司也采用主从方式通讯的产品时,如PLC、变频器等,多数情况下AI系列仪表都不会受其它公司产品通讯干扰,不会产生采集数据混乱或无法通讯的问题。但是AI仪表协议并不能保证其它公司产品能否正常工作,所以除非万不得已,不应将AI仪表与其它产品混在一个RS485通讯总线上,而应分别使用不同的总线。 二、通讯指令 AI仪表采用16进制数据格式来表示各种指令代码及数据。AI仪表软件通讯指令经过优化设计,标准的通讯指令只有两条,一条为读指令,一条为写指令,两条指令使得上位机软件编写容易,不过却能100%完整地对仪表进行操作;标准读和写指令分别如下: 读:地址代号+52H(82)+要读的参数代号+0+0+校验码 写:地址代号+43H(67)+要写的参数代号+写入数低字节+写入数高字节+校验码 地址代号:为了在一个通讯接口上连接多台AI仪表,需要给每台AI仪表编一个互不相同的通讯地址。有效的地址为0~80(部分型号为0~100),所以一条通讯线路上最多可连接81台AI仪表,仪表的通讯地址由参数Addr决定。仪表内部采用两个重复的128~208(16进制为80H~D0H)之间数值来表示地址代号,由于大于128的数较少用到(如ASC方式的协议通常只用0-127之间的数),因此可降低因数据与地址重复造成冲突的可能性。

modbus 协议 及 modbus RTU 的 C51 单片机 程序

modbus 协议及modbus RTU 的C51 单片机程序 Modbus通讯协议 Modbus协议最初由Modicon公司开发出来,在1979年末该公司成为施耐德自动化(Schneider Automation)部门的一部分,现在Modbus已经是工业领域全球最流行的协议。此协议支持传统的RS-232、RS-422、RS-485和以太网设备。许多工业设备,包括PLC,DCS,智能仪表等都在使用Modbus协议作为他们之间的通讯标准。有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。 当在网络上通信时,Modbus协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。如果需要回应,控制器将生成应答并使用Modbus协议发送给询问方。 Modbus 协议包括ASCII、RTU、TCP等,并没有规定物理层。此协议定义了控制器能够认识和使用的消息结构,而不管它们是经过何种网络进行通信的。标准的Modicon控制器使用RS232C实现串行的Modbus。Modbus的ASCII、RTU协议规定了消息、数据的结构、命令和就答的方式,数据通讯采用Maser/Slave方式,Master端发出数据请求消息,Slave端接收到正确消息后就可以发送数据到Master端以响应请求;Master端也可以直接发消息修改Slave端的数据,实现双向读写。 Modbus 协议需要对数据进行校验,串行协议中除有奇偶校验外,ASCII模式采用LRC校验,RTU模式采用16位CRC校验,但TCP模式没有额外规定校验,因为TCP协议是一个面向连接的可靠协议。另外,Modbus采用主从方式定时收发数据,在实际使用中如果某Slave 站点断开后(如故障或关机),Master端可以诊断出来,而当故障修复后,网络又可自动接通。因此,Modbus协议的可靠性较好。 下面我来简单的给大家介绍一下,对于Modbus的ASCII、RTU和TCP协议来说,其中TCP 和RTU协议非常类似,我们只要把RTU协议的两个字节的校验码去掉,然后在RTU协议的开始加上5个0和一个6并通过TCP/IP网络协议发送出去即可。所以在这里我仅介绍一下Modbus的ASCII和RTU协议。 下表是ASCII协议和RTU协议进行的比较: 协议 开始标记 结束标记

Modbus 通讯协议编程(VB源代码)

最近,本人为了实现电脑与Delta V FD-M变频器通讯,特意用VB6.0编了一个Modbus协议通讯软件。 这只是一个测试版,但Modbus的ASCII协议和RTU协议都已经实现。 现在将源程序上传,希望可以帮助到有需要的朋友,谢谢! 另外,假如你觉得有更好的想法,欢迎指教。 如果对本程序有任何意见和建议,也可以一起讨论,共同进步。 大家多多支持俺啊。 附:VB6源程序 Option Explicit Private Text1text As String Private RTUCRC As String '串口选择 Private Sub Combo1_Click() https://www.wendangku.net/doc/7f14333056.html,mPort = Combo1.ListIndex + 1 End Sub '数据位改变< span style="color: #008000;"> Private Sub Combo2_Click() Call setting End Sub '波特率改变< span style="color: #008000;"> Private Sub Combo3_Click() Call setting End Sub '奇偶校验改变< span style="color: #008000;"> Private Sub Combo4_Click() Call setting End Sub '停止位改变< span style="color: #008000;"> Private Sub Combo5_Click() Call setting

Private Sub setting() MSComm1.Settings = CStr(Combo3.Text) & ","& CStr(Combo4.Text) & ","& CStr(C ombo2.Text) _ & ","& CStr(Combo5.Text) End Sub '打开关闭串口< span style="color: #008000;"> Private Sub Command1_Click() On Error Resume Next If MSComm1.PortOpen = False Then MSComm1.PortOpen = True Else MSComm1.PortOpen = False End If If MSComm1.PortOpen Then'打开关闭按钮显示文字及combo1使能 Command1.Caption = "关闭串口" Combo1.Enabled = False Else Command1.Caption = "打开串口" Combo1.Enabled = True End If If Err Then'打开串口失败,则显示出错信息 MsgBox Error$, 48, "错误信息" Exit Sub End If End Sub '10转16进制< span style="color: #008000;"> Private Sub Command2_Click(Index As Integer) On Error Resume Next Text4.Text = Hex(Text3.Text) If Err Then''则显示出错信息< span style="color: #008000;"> MsgBox Error$, 48, "错误信息" Exit Sub End If

短信转移业务操作使用手册中国移动通信

中国移动通信有限公司短信过滤客服FAQ 文档

1 短信过滤最常见问题 (2) Q:是否可以过滤SP发来的短信? (2) Q:过滤条件的优先级是什么? (2) Q:关键字可以设置几组? (2) Q:黑白名单是否可以同时使用?生效方式如何查询及修改? (2) 2 短信过滤FAQ (3) Q:什么是短信过滤业务? (3) Q:短信过滤业务的业务类型是什么? (3) Q:短信过滤业务的业务状态是什么?及状态的查询修改方式有哪些? (3) Q:短信过滤业务的业务分类有哪些? (3) Q:短信过滤业务的使用范围是什么? (3) Q:短信过滤业务对终端类型有无特殊限定? (4) Q:如何办理短信过滤业务? (4) Q:如何通过短信指令暂停短信过滤业务? (4) Q:如何通过短信指令激活短信仓库过滤? (4) Q:如何通过短信指令查询短信过滤的状态? (4) Q:如何个性化设置短信过滤策略? (4) Q:短信过滤策略中的优先处理级别是怎样的? (4) Q:如何查看我已过滤了哪些短信? (4) Q:短信过滤业务中的白名单生效方式是什么意思? (4) Q:短信过滤业务中的黑名单生效方式是什么意思? (4) Q:短信过滤业务的优点有哪些? (5) 附录1:技术支持联系方式............................................................................................... 错误!未定义书签。 附录2:短信过滤短信指令列表 (5)

1 短信过滤最常见问题 Q:是否可以过滤SP发来的短信? A:可以。将不想接收其短信的SP号码设置为黑名单号码,即可将此SP发来的短信过滤掉。 Q:过滤条件的优先级是什么? A:对于各种过滤逻辑的条件设定和处理逻辑优先级描述如下: 1.按照关键字过滤具有最高的优先级 2.按照指定时段过滤优先级次之 3.黑、白名单的优先级最小,且黑、白名单只能选其一 Q:关键字可以设置几组? A:DCS默认的关键字个数是10组。每组关键字的最大长度为:10个英文字符或3个汉字。 Q:黑白名单是否可以同时使用?生效方式如何查询及修改? A:黑白名单不可同时使用。黑/白名单在同时只能有一种在生效。 系统在开通短信过滤业务时,默认使用黑名单方式。用户可以通过Web方式登录吉林移动WWW网站网上营业厅,点击黑/白名单管理,就可查询到当前生效的名单类型。点击“切换名单生效类型”按钮可以修改当前的生效类型。切换名单生效类型时不会删除另一份名单中的号码:如当前为黑名单,切换生效类型为白名单,原有的黑名单号码列表不会被删除。当用户再次切换到黑名单生效类型时,原有黑名单可继续使用。

RS485仪表通讯协议

目录 1.引言 (1) 1.1仪表通讯及命令 (1) 1.2仪表基本构成与通讯命令的关系 (2) 2.接线 (3) 2.1RS232接口的仪表与计算机的接线 (3) 2.2RS485接口的仪表与计算机的接线 (4) 2.3关于JR485转换器 (4) 3.通讯接口要素 (5) 4.仪表的版本号 (6) 5.校验核 (7) 6.一般仪表命令集详解 (8) 6.0关于命令集 (8) 6.1读版本号命令 (10) 6.2读主测量值命令 (10) 6.3读其它测量值命令 (11) 6.4读模拟量输出值及开关量输入输出状态命令 (12) 6.5输出模拟量命令 (13) 6.6输出开关量命令 (14)

6.7读仪表参数符号命令 (15) 6.8读仪表参数命令 (16) 6.9设置仪表参数命令 (16) 7.巡检仪通讯命令集 (18) 7.0关于命令集 (18) 7.1读测量值命令 (19) 7.2读报警状态命令 (20) 7.3读参数命令 (21) 7.4设置参数命令 (22) 7.5参数地址表 (23) 8.测试软件 (25) 8.0关于测试软件 (25) 8.1DOS环境测试 (25) 8.2W INDOWS 环境下测试 (26) 9.故障诊断及应用笔记 (29) 9.1故障诊断流程图 (29) 9.2应用笔记 (30) 附录1 通讯中使用的ASCⅡ码表 (31) 附录2 XS系列仪表通讯协议的解释与补充 (32)

1.引言 1.1 仪表通讯及命令 仪表能连接到所有的计算机并与之通讯,采用RS232或RS485传输标准。仪表与计算机之间的往来通讯都以ASCⅡ码实现,意味着计算机能以任何高级语言编程。 仪表的命令集由数条指令组成,完成计算机从仪表读取测量值、报警状态、控制值、参数值,向仪表输出模拟量、数字量,以及对仪表的参数设置。与通过仪表面板设置参数一样,通过计算机对仪表的参数设置被存入EEPROM存贮器,在掉电情况下也能保存这些参数。 为避免通讯冲突,所有的操作均受计算机控制。当仪表不进行发送时,都处于侦听方式。计算机按规定地址向某一仪表发出一个命令,然后等待一段时间,等候仪表回答。如果没收到回答,则超时中止,将控制转回计算机。 由于仪表的特性不同,我们将仪表的通讯命令集分为3类: 第1类:一般仪表 包括除巡检仪和无纸记录仪外的全部仪表。 命令详解见第6章 第2类:巡检仪表 命令详解见第7章 第3类:无纸记录仪 通讯规程见《无纸记录仪用户手册》

Modbus 通讯协议的原理和标准

Modbus 通讯协议的原理和标准 工业控制已从单机控制走向集中监控、集散控制,如今已进入网络时代,工业控制器连网也为网络管理提供了方便。Modbus 就是工业控制器的网络协议中的一种。 一、Modbus 协议简介 Modbus 协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。它已经成为一通用工业标准。有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。它描述了一控制器请求访问其它设备的过程,如果回应来自其它设备的请求,以及怎样侦测错误并记录。它制定了消息域格局和内容的公共格式。 当在一Modbus 网络上通信时,此协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。如果需要回应,控制器将生成反馈信息并用Modbus 协议发出。在其它网络上,包含了Modbus 协议的消息转换为在此网络上使用的帧或包结构。这种转换也扩展了根据具体的网络解决节地址、路由路径及错误检测的方法。 1、在Modbus 网络上转输 标准的Modbus 口是使用一RS-232C 兼容串行接口,它定义了连接口的针脚、电缆、信号位、传输波特率、奇偶校验。控制器能直接或经由Modem 组网。 控制器通信使用主—从技术,即仅一设备(主设备)能初始化传输(查询)。其它设备(从设备)根据主设备查询提供的数据做出相应反应。典型的主设备:主机和可编程仪表。典型的从设备:可编程控制器。 主设备可单独和从设备通信,也能以广播方式和所有从设备通信。如果单独通信,从设备返回一消息作为回应,如果是以广播方式查询的,则不作任何回应。Modbus 协议建立了主设备查询的格式:设备(或广播)地址、功能代码、所有要发送的数据、一错误检测域。 从设备回应消息也由Modbus 协议构成,包括确认要行动的域、任何要返回的数据、和一错误检测域。如果在消息接收过程中发生一错误,或从设备不能执行其命令,从设备将建立一错误消息并把它作为回应发送出去。 2、在其它类型网络上转输 在其它网络上,控制器使用对等技术通信,故任何控制都能初始和其它控制器的通信。这样在单独的通信过程中,控制器既可作为主设备也可作为从设备。提供的多个内部通道可允许同时发生的传输进程。 在消息位,Modbus 协议仍提供了主—从原则,尽管网络通信方法是“对等”。如果一控制器发送一消息,它只是作为主设备,并期望从从设备得到回应。同样,当控制器接收到一消息,它将建立一从设备回应格式并返回给发送的控制器。 3、查询—回应周期 (1)查询 查询消息中的功能代码告之被选中的从设备要执行何种功能。数据段包含了从设备要执行功能的任何附加信息。例如功能代码03 是要求从设备读保持寄存器并返回它们的内容。数据段必须包含要告之从设备的信息:从何寄存器开始读及要读的寄存器数量。错误检测域为从设备提供了一种验证消息内容是否正确的方法。

中国移动指定代码大全发送至10086

中国移动指定代码大全(发送至 10086) 以下是各项业务开通和取消方式: 类别发送代码 HF业务功能 实时话费查询 HF# YYYMM往月帐单查询 话费积分查询JF YECX LS#mm CXZD KTFX KTL CXP 热点业务办理KTGJHY KTCXTC#1 KTSWTC#5 KTHBGJ KTYYTH KTL QXL

KTDXTC#积分查询 套餐使用额度查询缴费历史查询 话费提醒(帐单)定制开通飞信开通来电提醒开通手机报无线音乐俱乐部高级会员开通彩信1 元套餐 开通GPRS5元套餐 号薄管家 开通125 93一元特惠包来电提醒 来电提醒取消 5 元短信套餐开通 KTDXTC#101元短信套餐开通 KTDXTC#151元短信套餐开通 新业务办理QXDXTC KTCLTC#5 KTCLTC#10 QXCLTC KTCXTC#1 KTCXTC#3 KTCXTC#短信套餐取消 彩铃5元套餐开通彩铃10 元套餐开通彩铃套餐取消 彩信1 元套餐开通 彩信3 元套餐开通

彩信5元套餐开通 QXCXTC KTSWTC QXSWTC QXYDMS KTYYTH QXYYTH KTCHYH QXCHYH KTMYYH QXMYYH MWDG MWCX MMGL 客户服务XXCX HM 彩信套餐取消 5元GPRS套餐开通 GPRS套餐取消取消移动秘书 12593 一元特惠包开通 12593 一元特惠包取消国内9 元长话优惠包开通国内9 元长话优惠包取消区内9 元漫游优惠包开通区内9 元漫游优惠包

取消梦网业务订购已定制梦网查询密码管理常用信息查询查询号码归属地

中国移动短信指令大全

1.发送CXBX到10086,查询当月套餐剩余短信条数。 2.发送CXGFX到10086,查询当月飞信GPRS套餐剩余流量。 3.发送CXGTC到10086,查询当月GPRS套餐剩余流量。 4.发送CXCCT到10086,查询当月超级畅听套餐剩余流量。 5.发送CXGLL到10086,查询当月已使用的GPRS流量总和。 6.发送CXDX120,查询当月可选计划“短信120”剩余短信条数。 7.发送CXDX500,查询当月可选计划“短信500”剩余短信条数。 8.发送CXCXB,查询当月可选计划“彩信包”剩余彩信条数。 9.发送CXIP1000,查询当月可选计划“IP1000”剩余通话时长。 10.发送CXMDX,查询M计划兑换的“短信包(50条/月)”当月剩余短信条数。 11.发送CXMCX,查询M计划兑换的“彩信包(10条/月)”当月剩余彩信条数。 12.发送CXMG,查询M计划兑换的“10M/月的GPRS流量”剩余流量。 信指令短信发送端口办理业务 YE/CXYE 10086 余额查询 KTFX 10086 开通飞信

QXFX 10086 取消飞信 BLHZ 10086 开通短信回执 QXHZ 10086 取消短信回执 BLYY19 10086 办理19元音乐卡套餐BLYY29 10086 ....办理29元音乐卡套餐BLYY39 10086 办理39元音乐卡套餐BLYY59 10086 办理59元音乐卡套餐GPRS5 . 10086 办理GPRS5元套餐GPRS20 10086 办理GPRS20元套餐GPRS50 10086 办理GPRS50元套餐GPRS100 .10086 办理GPRS100元套餐GPRS200 .10086 办理GPRS200元套餐 信指令短信发送端口办理业务 CXGPRS5 .10086 查询GPRS5元套餐CXGPRS20 10086 查询GPRS20元套餐CXGPRS50 10086 查询GPRS50元套餐CXGPRS100 10086 ....查询GPRS100元套餐CXGPRS200 10086 ....查询GPRS200元套餐

rs485总线通讯协议

竭诚为您提供优质文档/双击可除 rs485总线通讯协议 篇一:Rs485通讯协议说明 摘要:阐述了Rs-485总线规范,描述了影响Rs-485总线通信速率和通信可靠性的三个因素,同时提出了相应的解决方法并讨论了总线负载能力和传输距离之间的具体关系。 关键词:Rs-485现场总线信号衰减信号反射 当前自动控制系统中常用的网络,如现场总线can、profibus、inteRbus-s以及aRcnet的物理层都是基于 Rs-485的总线进行总结和研究。 一、eiaRs-485标准 在自动化领域,随着分布式控制系统的发展,迫切需要一种总线能适合远距离的数字通信。在Rs-422标准的基础上,eia研究出了一种支持多节点、远距离和接收高灵敏度的Rs-485总线标准。 Rs-485标准采有用平衡式发送,差分式接收的数据收发器来驱动总线,具体规格要求: 接收器的输入电阻Rin≥12kΩ 驱动器能输出±7V的共模电压

输入端的电容≤50pF 在节点数为32个,配置了120Ω的终端电阻的情况下,驱动器至少还能输出电压1.5V(终端电阻的大小与所用双绞线的参数有关) 接收器的输入灵敏度为200mV(即(V+)-(V-)≥0.2V,表示信号“0”;(V+)-(V-)≤-0.2V,表示信号“1”)因为Rs-485的远距离、多节点(32个)以及传输线成本低的特性,使得eiaRs-485成为工业应用中数据传输的首选标准。 二、影响Rs-485总线通讯速度和通信可靠性的三个因素 1、在通信电缆中的信号反射 在通信过程中,有两种信号因导致信号反射:阻抗不连续和阻抗不匹配。 阻抗不连续,信号在传输线末端突然遇到电缆阻抗很小甚至没有,信号在这个地方就会引起反射,如图1所示。这种信号反射的原理,与光从一种媒质进入另一种媒质要引起反射是相似的。消除这种反射的方法,就必须在电缆的末端跨接一个与电缆的特性阻抗同样大小的终端电阻,使电缆的阻抗连续。由于信号在电缆上的传输是双向的,因此,在通讯电缆的另一端可跨接一个同样大小的终端电阻,如图2所示。

modbus通讯协议软件包

ModBus通讯协议软件包 ModBus通讯协议简介 是一种已广泛应用于当今工业控制领域的通用通讯协议。通过此协议,控制器相互之间、或控制器经由网络(如以太网)可以和其它设备之间进行通信。使用的是主从通讯技术,即由主设备主动查询和操作从设备。一般将主控设备方所使用的协议称为Modbus Master,从设备方使用的协议称为Modbus Slave。典型的主设备包括工控机和工业控制器等;典型的从设备如PLC可编程控制器等。Modbus通讯物理接口可以选用串口(包括RS232和RS485),也可以选择以太网口。其通信遵循以下的过程: ·主设备向从设备发送请求; ·从设备分析并处理主设备的请求,然后向主设备发送结果; ·如果出现任何差错,从设备将返回一个异常功能码。 英创ModBus通讯协议软件产品简介 英创公司推出的ModBus通讯协议软件产品主要应用于英创ARM9嵌入式主板环境,英创工控主板均带有丰富的串口、网络资源、通用GPIO接口等,同时具有强大的处理能力。结合ModBus通讯协议软件,就可非常方便地构成符合ModBus通讯规范的主控(Master)及设备(Slave)的应用平台。针对ModBus通讯的主从方式这一特点,英创公司的ModBus通讯协议软件包分为两个可独立使用的部分,即“ModBus主控协议软件”(简称modbus_Master)以及“ModBus设备方协议软件”(简称modbus_Slave)。目前英创ModBus通讯协议软件运行于WinCE环境下,均以C函数加静态LIB库的形式提供给客户。其主要特征如下: ·非常适用于实时的工业应用。 ·可以支持基于串口的ModBus通讯协议应用或TCP的ModBus通讯协议应用。 ·RTU传输模式。

中国移动业务代码大全教学文案

中国移动业务代码大 全

移动业务代码大全 1.发送CXBX到10086,查询当月套餐剩余短信条数。 2.发送CXGFX到10086,查询当月飞信GPRS套餐剩余流量。 3.发送CXGTC到10086,查询当月GPRS套餐剩余流量。 4.发送CXCCT到10086,查询当月超级畅听套餐剩余流量。 5.发送CXGLL到10086,查询当月已使用的GPRS流量总和。 6.发送CXDX120,查询当月可选计划“短信120”剩余短信条数。 7.发送CXDX500,查询当月可选计划“短信500”剩余短信条数。 8.发送CXCXB,查询当月可选计划“彩信包”剩余彩信条数。 9.发送CXIP1000,查询当月可选计划“IP1000”剩余通话时长。 10.发送CXMDX,查询M计划兑换的“短信包(50条/月)”当月剩余短信条数。 11.发送CXMCX,查询M计划兑换的“彩信包(10条/月)”当月剩余彩信条数。 12.发送CXMG,查询M计划兑换的“10M/月的GPRS流量”剩余流量。

信指令短信发送端口办理业务 YE/CXYE 10086 余额查询 KTFX 10086 开通飞信 QXFX 10086 取消飞信 BLHZ 10086 开通短信回执 QXHZ 10086 取消短信回执 BLYY19 10086 办理19元音乐卡套餐BLYY29 10086 ....办理29元音乐卡套餐BLYY39 10086 办理39元音乐卡套餐BLYY59 10086 办理59元音乐卡套餐GPRS5 . 10086 办理GPRS5元套餐GPRS20 10086 办理GPRS20元套餐GPRS50 10086 办理GPRS50元套餐

RS485主从式多机通讯协议

RS485主从式多机通讯协议 一、数据传输协议 此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。它描述了一控制器请求访问其它设备的过程,如何回应来自其它设备的请求,以及怎样侦测错误并记录。它制定了消息域格局和内容的公共格式。 此协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。如果需要回应,控制器将生成反馈信息按本协议发出。 1、数据在网络上转输 控制器通信使用主—从技术,即仅一设备(主设备)能初始化传输(查询)。其它设备(从设备)根据主设备查询提供的数据作出相应反应。 主设备可单独和从设备通信,也能以广播方式和所有从设备通信。如果单独通信,从设备返回一消息作为回应,如果是以广播方式查询的,则从设备不作任何回应。协议建立了主设备查询的格式:设备(或广播)地址、功能代码、所有要发送的数据、一错误检测域。 从设备回应消息也由协议构成,包括确认要行动的域、任何要返回的数据、和一错误检测域。如果在消息接收过程中发生一错误(无相应的功能码),或从设备不能执行其命令,从设备将建立一错误消息并把它作为回应发送出去。 2、在对等类型网络上转输 在对等网络上,控制器使用对等技术通信,故任何控制都能初始和其它控制器的通信。这样在单独的通信过程中,控制器既可作为主设备也可作为从设备。 在消息位,本协议仍提供了主—从原则,尽管网络通信方法是“对等”。如果一控制器发送一消息,它只是作为主设备,并期望从设备得到回应。同样,当控制器接收到一消息,它将建立一从设备回应格式并返回给发送的控制器。 3、查询—回应周期 (1)查询 查询消息中的功能代码告之被选中的从设备要执行何种功能。数据段包含了从设备要执行功能的任何附加信息。错误检测域为从设备提供了一种验证消息内容是否正确的方法。 (2)回应 如果从设备产生一正常的回应,在回应消息中的功能代码是在查询消息中的功能代码的回应。数据段包括了从设备收集的数据。如果有错误发生,功能代码将被修改以用于指出回应消息是错误的,同时数据段包含了描述此错误信息的代码。错误检测域允许主设备确认消息内容是否可用。 二、传输方式 控制器能设置传输模式为RS485串行传输,通信参数为9600,n,8,1。在配置每个控制器的时候,在一个网络上的所有设备都必须选择相同的串口参数。 地址功能代码数据数量数据1 ...….数据n CRC字节 每个字节的位 · 1个起始位 · 8个数据位,最小的有效位先发送 · 1个停止位 错误检测域 · CRC(循环冗余码校验) 三、消息帧

modbus通讯协议软件包

ModBus通讯协议软件包 ModBus 通讯协议简介 是一种已广泛应用于当今工业控制领域的通用通讯协议。通过此协议,控制器相互之间、或控制器经由网络(如以太网)可以和其它设备之间进行通信。使用的是主从通讯技术,即由主设备主动查询和操作从设备。一般将主控设备方所使用的协议称为Modbus Master,从设备方使用的协议称为Modbus Slave。典型的主设备包括工控机和工业控制器等;典型的从设备如PLC可编程控制器等。Modbus通讯物理接口可以选用串口(包括RS232和RS485 ),也可以选择以太网口。其通信遵循以下的过程: 主设备向从设备发送请求; 从设备分析并处理主设备的请求,然后向主设备发送结果; 如果岀现任何差错,从设备将返回一个异常功能码。 英创ModBus 通讯协议软件产品简介 英创公司推出的ModBus通讯协议软件产品主要应用于英创ARM9嵌入式主板环境,英创工控 主板均带有丰富的串口、网络资源、通用GPIO接口等,同时具有强大的处理能力。结合ModBus通 讯协议软件,就可非常方便地构成符合ModBus通讯规范的主控(Master )及设备(Slave )的应用 平台。针对ModBus通讯的主从方式这一特点,英创公司的ModBus通讯协议软件包分为两个可独 立使用的部分,即“ModBus主控协议软件”(简称modbus_Master )以及“ModBus设备方协议软件”(简称modbus_Slave )。目前英创ModBus通讯协议软件运行于WinCE环境下,均以C函数加静态LIB库的形式提供给客户。其主要特征如下: 非常适用于实时的工业应用 可以支持基于串口的ModBus通讯协议应用或TCP的ModBus通讯协议应用 RTU传输模式。

中国移动 短信营业厅功能代码一览表 (代码发10086)

短信营业厅功能代码一览表:业务类型及数字代码拼音指令1.话费、优惠及月账单查询101查询当前话费总额/余额CXHF或CXYE 102查询上月账单CXSYZD 103查询当月及历史帐单CXZD#yymm 104查询已用优惠1041查询已用优惠金额CXYH#1 1042查询已用优惠时长、短信及V网时长CXYH#2 105查询已用移动数据流量CXYYSJLL 106余额提醒1061开通余额提醒KTYETX#xx.xx(金额) 1062取消余额提醒QXYETX 1063介绍余额提醒JSYETX 1064状态查询CXYETX 107定制电子账单1071定制短信账单DZZD 1072取消短信账单QXZD 1073定制彩信账单DZCXZD 1074取消彩信账单QXCXZD 1075介绍电子账单JSDZZD 1076状态查询CXDZZD 108查询缴费历史CXJFLS 2.查询已开通业务及服务密码办理201查询本机资费产品CXCP 202查询已开通业务CXYW 203服务密码2031密码申请SQMM#[身份证号码] 2032密码修改BGMM#[原密码]#[新密码] 2033密码重置CZMM#[身份证号码] 2034介绍服务密码JSMM 204查询有效期CXYXQ 205查询信誉度CXXYD 206查询归属地CXGSD#[手机号码] 207查询积分CXJF 210我的10086个性化菜单功能2101开通我的10086KT10086

2102取消我的10086QX10086 2103介绍我的10086JS10086 3.来电显示、彩玲、GPRS等业务办理301来电显示3011开通来电显示KTLDXS 3012取消来电显示QXLDXS 3013介绍来电显示JSLDXS 3014状态查询CXLDXS 302彩铃3021开通彩铃KTCL 3022取消彩铃QXCL 3023介绍彩铃JSCL 3024状态查询CXCL 303移动数据流量套餐3031开通移动数据流量标准资费KTSJLL#BZ 3032开通移动数据流量5元资费KTSJLL#5 3033开通移动数据流量20元资费KTSJLL#20 3034开通移动数据流量50元资费KTSJLL#50 3035开通移动数据流量100元资费KTSJLL#100 3036开通移动数据流量200元资费KTSJLL#200 3037取消移动数据流量套餐QXSJLL 3038移动数据流量套餐资费介绍30381介绍移动数据流量标准资费JSSJLLBZ 30382介绍移动数据流量5元资费JSSJLL5 30383介绍移动数据流量20元资费JSSJLL20 30384介绍移动数据流量50元资费JSSJLL50 30385介绍移动数据流量100元资费JSSJLL100 30386介绍移动数据流量200元资费JSSJLL200 3039状态查询CXSJLL 304来电提醒3041开通来电提醒KTLDTX 3042取消来电提醒3042取消来电提醒QXLDTX 3043介绍来电提醒JSLDTX 3044状态查询3044状态查询CXLDTX 305飞信3051开通飞信KTFX 3052取消飞信3052取消飞信QXFX

RS485通讯协议

RS485 通讯协议 RS-232与RS-422之间转换原理和接法 通常我们对于视频服务器、录像机、切换台等直接播出、切换控制主要使用串口进行,主要使用到RS-232、RS-422与RS-485三种接口控制。下面就串口的接口标准以及使用和外部插件和电缆进行探讨。 RS-232、RS-422与RS-485标准只对接口的电气特性做出规定,而不涉及接插件、电缆或协议,在此基础上用户可以建立自己的高层通信协议。例如:视频服务器都带有多个RS422串行通讯接口,每个接口均可通过RS422通讯线由外部计算机控制实现记录与播放。视频服务器除提供各种控制硬件接口外,还提供协议接口,如RS422接口除支持RS422的Profile 协议外,还支持Louth、Odetics、BVW等通过RS422控制的协议。 RS-232、RS-422与RS-485都是串行数据接口标准,都是由电子工业协会(EIA)制订并发布的,RS-232在1962年发布。RS-422由RS-232发展而来,为改进RS-232通信距离短、速率低的缺点,RS-422定义了一种平衡通信接口,将传输速率提高到10Mbps,传输距离延长到4000英尺(速率低于100Kbps时),并允许在一条平衡总线上连接最多10个接收器。RS-422是一种单机发送、多机接收的单向、平衡传输规范,被命名为TIA/EIA-422-A标准。为扩展应用范围,EIA又于1983年在RS-422基础上制定了RS-485标准,增加了多点、双向通信能力,即允许多个发送器连接到同一条总线上,同时增加了发送器的驱动能力和突保护特性,扩展了总线共模范围,后命名为TIA/EIA485-A标准。 1. RS-232串行接口标准 目前RS-232是PC机与通信工业中应用最广泛的一种串行接口。RS-232被定义为一种在低速率串行通讯中增加通讯距离的单端标准。RS-232采取不平衡传输方式,即所谓单端通讯。收、发端的数据信号是相对于信号地。典型的RS-232信号在正负电平之间摆动,在发送数据时,发送端驱动器输出正电平在+5~+15V,负电平在5~-15V电平。当无数据传输时,线上为TTL,从开始传送数据到结束,线上电平从TTL电平到RS-232电平再返回 TTL电平。接收器典型的工作电平在+3~+12V与-3~-12V。由于发送电平与接收电平的差仅为2V至3V左右,所以其共模抑制能力差,再加上双绞线上的分布电容,其传送距离最大为约15米,最高速率为20Kbps。RS-232是为点对点(即只用一对收、发设备)通讯而设计的,其驱动器负载为3kΩ~7kΩ。所以RS-232适合本地设备之间的通信。 2. RS-422与RS-485串行接口标准 (1)平衡传输 RS-422、RS-485与RS-232不一样,数据信号采用差分传输方式,也称作平衡传输,它使用一对双绞线,将其中一线定义为A,另一线定义为B。通常情况下,发送驱动器A、B之间的正电平在+2~+6V,是一个逻辑状态,负电平在-2V~6V,是另一个逻辑状态。另有一个信号地C,在RS-485中还有一“使能”端,而在RS-422中这是可用可不用的。“使能”端是用于控制发送驱动器与传输线的切断与连接。当“使能”端起作用时,发送驱动器处于高阻状态,称作“第三态”,即它是有别于逻辑“1”与“0”的第三态。 (2)RS-422电气规定 由于接收器采用高输入阻抗和发送驱动器比RS232更强的驱动能力,故允许在相同传输线上连接多个接收节点,最多可接10个节点。即一个主设备(Master),其余为从设备(Salve),从设备之间不能通信,所以RS-422支持点对多的双向通信。RS-422四线接口由于采用单独的发送和接收通道,因此不必控制数据方向,各装置之间任何必须的信号交换均可以按软件方式(XON/XOFF握手)或硬件方式(一对单独的双绞线)实现。RS-422的最大传输距离为

Modbus RTU通讯协议

要实现Modbus RTU通信, 一、需要STEP 7-Micro/WIN32 V3.2以上版本的编程软件,而且须安装STEP 7-Micro/WIN32 V3.2 Instruction Library(指令库)。Modbus RTU功能是通过指令库中预先编好的程序功能块实现的。 Modbus RTU从站指令库只支持CPU上的通信0口(Port0) 基本步骤: 1. 检查Micro/WIN的软件版本,应当是STEP 7-Micro/WIN V3.2以上版本。 2. 检查Micro/WIN的指令树中是否存在Modbus RTU从站指令库(图1),库中应当 包括MBUS_INIT和MBUS_SLAVE两个子程序。 如果没有,须安装Micro/WIN32 V3.2的Instruction Library(指令库)软件包; 1. 西门子编程时使用SM0.1调用子程序MBUS_INIT进行初始化,使用SM0.0调用 MBUS_SLAVE,并指定相应参数。 关于参数的详细说明,可在子程序的局部变量表中找到; 调用Modbus RTU通信指令库图中参数意义如下: a. 模式选择:启动/停止Modbus,1=启动;0=停止 b. 从站地址:Modbus从站地址,取值1~247 c. 波特率:可选1200,2400,4800,9600,19200,38400,57600,115200 d. 奇偶校验:0=无校验;1=奇校验;2=偶校验 e. 延时:附加字符间延时,缺省值为0 f. 最大I/Q位:参与通信的最大I/O点数,S7-200的I/O映像区为128/128, 缺省值为128 g. 最大AI字数:参与通信的最大AI通道数,可为16或32 h. 最大保持寄存器区:参与通信的V存储区字(VW) i. 保持寄存器区起始地址:以&VBx指定(间接寻址方式) j. 初始化完成标志:成功初始化后置1

ZNJC2 RS485通讯 modbus 协议

_ MODBUS 通讯协议说明 1. 通讯相关的参数 2.通讯说明 2.1 数据格式说明 控制器采用RS-485总线,协议符合ModBus 规约,数据格式有标准MODBUS-RTU 、 非标准MODBUS-RTU(16进制)和ASC(ASC Ⅱ码)3种格式。 数据传输均采用8位数据位、1位停止位、无奇偶校验位。波特率可设为2400、4800、9600和19200 bit/s 。 通讯传送分为独立的信息头,和发送的编码数据。以下的通讯传送方式定义与RTU 通讯规约相兼容: 2.2 非标准MODBUS-RTU(16进制)数据格式详细说明 下面以RTU(16进制)数据格式进行详细说明,ASC Ⅱ码数据格式只是把16进制代码 转换成ASC Ⅱ码字符。 地址码:这个字节表明由用户设定地址码的从机将接收由主机发送来的信息。并且每个从机都有具有唯一的地址码,并且响应回送均以各自的地址码开始。主机发送的地址码表明将发送到的从机地址,而从机发送的地址码表明回送的从机地址。 功能码:通讯传送的第二个字节。ModBus 通讯规约定义功能号为01H 到7FH 。本控制器利用其中的一部分功能码。作为主机请求发送,通过功能码告诉从机执行什么动作。作为从机响应,从机发送的功能码与从主机发送来的功能码一样,并表明从机已响应主机进行操作。如果从机发送的功能码的

最高位 (比如功能码大于7FH),则表明从机没有响应操作或发送出错。 数据区:数据区是根据不同的功能码而不同。 CRC码:二字节的错误检测码。 当通讯命令发送至仪器时,符合相应地址码的设备接通讯命令,并除去地址码,读取信息,如果没有出错,则执行相应的任务;然后把执行结果返送给发送者。返送的信息中包括地址码、执行动作的功能码、执行动作后结果的数据以及错误校验码。如果出错就不发送任何信息。 2.2.2 信息帧格式: (1)地址码: 地址码是信息帧的第一字节(8位),从1到255。这个字节表明由用户设置地址的从机将接收由主机发送来的信息。每个从机都必须有唯一的地址码,并且只有符合地址码的 从机才能响应回送。当从机回送信息时,相当的地址码表明该信息来自于何处。 (2)功能码: 主机发送的功能码告诉从机执行什么任务。表2列出的功能码都有具体的含义及操作。 (3 数据区包含需要从机执行什么动作或由从机采集的返送信息。这些信息可以是数值、参考地址等等。例如,功能码告诉从机读取寄存器的值,则数据区必需包含要读取寄存器 的起始地址及读取长度。对于不同的从机,地址和数据信息都不相同。 (4)错误校验码: 主机或从机可用校验码进行判别接收信息是否出错。有时,由于电子噪声或其它一些干扰,信息在传输过程中会发生细微的变化,错误校验码保证了主机或从机对在传送过程 中出错的信息不起作用。这样增加了系统的安全和效率。错误校验采用CRC-16校验方法。 注: 信息帧的格式都基本相同:地址码、功能码、数据区和错误校验码。 2.2.3 错误校验 参与冗余循环码(CRC)计算的包括:地址码、功能码、数据区的字节。 冗余循环码包含2个字节,即16位二进制。CRC码由发送设备计算,放置于发送信息的尾部。接收信息的设备再重新计算接收到信息的 CRC码,比较计算得到的CRC码是否与接收到的相符,如果两者不相符,则表明出错。 CRC码的计算方法是,先预置16位寄存器全为1。再逐步把每8位数据信息进行处理。在进行CRC码计算时只用8位数据位,起始位及停止位,如有奇偶校验位的话也包括奇偶校验位,都不参与CRC码计算。 在计算CRC码时,8位数据与寄存器的数据相异或,得到的结果向低位移一字节,用0填补最高位。再检查最低位,如果最低位为1,把寄存器的内容与预置数相异或,如果最低位为0,不进行异或运算。 这个过程一直重复8次。第8次移位后,下一个8位再与现在寄存器的内容相异或,这个过程与以上一样重复8次。当所有的数据信息处理完后,最后寄存器的内容即为CRC码值。 计算CRC码的步骤为: (1).预置16位寄存器为十六进制FFFF(即全为1)。称此寄存器为CRC寄存器; (2).把第一个8位数据与16位CRC寄存器的低位相异或,把结果放于CRC寄存器; (3).把寄存器的内容右移一位(朝低位),用0填补最高位,检查最低位(注意:这时的最低位指移位前 的最低位,不是移位后的最低位); (4).如果最低位为0:重复第3步(再次移位)

相关文档