SERAD MCS 32 EX Guide D'utilisation page 141

Table des Matières

Publicité

Documentation MCS32
TraitementMessage:
Sum$=Left$(Rxd$,Len(Rxd$)-2)
Sum%=Crc(Sum$)
Sum$=Mki$(Sum%)
If Sum$<>Right$(Rxd$,2) Then Jump ErreurLiaison
AdrBus%=Cvir(Mid$(Rxd$,3,2))
NbrBus#=Asc(Rxd$,6)
If (NbrBus#=0) Or (NbrBus#>100) Then Jump ErreurAdresse
If AdrBus%<AdresseModbus% Then Jump ErreurAdresse
A1%=AdrBus%+NbBus#
A2%=AdresseModbus%+NombreModbus%
If A1%>A2% Then Jump ErreurAdresse
If NumFonction#=16 Then Jump WriteWord
'------------------------------------------------------------
'
' LECTURE DES MOTS
'
ReadWord:
If NumMcs#<>NumeroMcs# Then Jump ErreurLiaison
Txd$=""
I#=1
A%=(AdrBus%-AdresseModbus%)+1
ReadWordBcl:
Txd$=Txd$+Mkir$(TableModbus[A%])
A%=A%+1
I#=I#+1
If I#<=NbrBus# Then Jump ReadWordBcl
Txd$=Chr$(Len(Txd$))+Txd$
CmtMessage&=CmtMessage&+1
Jump MessageTxd
'------------------------------------------------------------
'
' ECRITURE DES MOTS
'
WriteWord:
I#=1
J#=0
A%=(AdrBus%-AdresseModbus%)+1
WriteWordBcl:
TableModbus[A%]=Cvir(Mid$(Rxd$,8+J#,2))
A%=A%+1
I#=I#+1
J#=J#+2
If I#<=NbrBus# Then Jump WriteWordBcl
Txd$=Mid$(Rxd$,3,4)
CmtMessage&=CmtMessage&+1
Jump MessageTxd
'------------------------------------------------------------
' *
' * TRANSMISSION *
' *
' Erreurs
ErreurLiaison:
ErrLiaison&=ErrLiaison&+1
Jump InitRxd
ErreurAdresse:
NumFonction#=NumFonction#+128
Txd$=Chr$(2)
ErrAdresse&=ErrAdresse&+1
Jump MessageTxd
ErreurData:
NumFonction#=NumFonction#+128
Txd$=Chr$(3)
ErrData&=ErrData&+1
' Envoi message
MessageTxd:
Clearin #2 'vide buffer rxd
If NumMcs#=0 Then Jump InitRxd
R342
EX
- 141 -
SERAD S.A.

Publicité

Table des Matières
loading

Table des Matières