Modbus-RTU - Kommunikationsprotokollpaket basierend auf C #

Zahlung ¥6.99Zahlung ¥6.99

该内容已接入现有会员/付费系统,解锁后可查看完整资料或下载附件。

查看解锁方式
Modbus-RTU - Kommunikationsprotokollpaket basierend auf C #

Erstellen Sie eine MODBUS-RTU - Instanz basierend auf den eingehenden Parametern:

/// <summary>
/// 建立 MODBUS RTU 串口业务
/// String comnum  =     串口号
/// int buad      =      串口的波特率
/// int dataLen   =      数据长度
/// String chklen    =      检验位
/// String stoplen   =      停止位
/// </summary>
public ModbusRTU_Lib(String comnum,int buad,int dataLen,string chklen,string stoplen,int scantime)

 

Hinzufügen einer MODBUS-RTU - Scan-Sklavenstation:

/// <summary>
/// 清除所有的从站列表
/// </summary>
public void clearAllModbusSalve()

/// <summary>
/// 删除扫描列表中的指定从站
/// </summary>
/// <param name="whichAddr"></param>
public void deletAllModbusSalve(int whichAddr)

Löschen Sie die Liste der erstellten MODBUS-RTU - Scan-Sklavenstation:

 

/// <summary>
/// 增加 MODBUS 从站扫描列表
/// </summary>
/// <param name="xDeviceMdEnty"></param>
public void addModbusSlaveScanList(DeviceMdEnty xDeviceMdEnty)

Öffnen eines MODBUS-RTU - Kommunikationsanschlusses

/// <summary>
/// 打开串口
/// </summary>
/// <returns></returns>
public Boolean openUartOfModbus()

Schließen des seriellen Anschlusses

/// <summary>
/// 关闭串口
/// </summary>
/// <returns></returns>
public Boolean closeUartOfModbus()

Starten eines zeitgerechten Scandienstes für MODBUS-RTU

/// <summary>
/// 启动 MODBUS 扫描业务
/// </summary>
public void startModbusWork()

 

Senden der MODBUS-RTU - Befehl

发送数据
*
int slaveAddr = 从站地址
int addrTe = 读写的启始地址
int cmdTe = 功能码
int lenTe =读出数据长度
byte[] msgBuf = 待写入的数据的缓冲期,每个字占 2BYTE
int msgLen  = 写入的数据长度
return :
*   true = 已发送数据,false = 未发送
*
*********************************************************************/
/// <summary>
///
/// </summary>
public Boolean sendModbusMsg(int slaveAddr,int cmdTe, int addrTe, int lenTe, byte[]
msgBuf, int msgLen)

Rückrufmethode für eine Instanz der MODBUS-RTU, die Daten von allen seriellen Anschlüssen zurückgibt

Result =  "E00";表示"创建串口失败:"
Result =  "E01";表示"串口号未设置:"
Result =  "E02";表示"停止位参数错误:"
Result =  "E03";表示"校验位参数错误:"
Result =  "F00";表示"校验位参数错误:"
Result =  "Y00";表示"创建串口成功:"
Result =  "M00";表示"接收到串口数据:"

deklariert Delegation über Ereignisse, Parameter für den Datentyp, der zurückgeschickt werden soll, Serienempfangdaten

public delegate void ModbusRTU_EventHandler(string result, byte[] msg) ;

 

Callback-Methode für die Instanz der MODBUS-RTU, die alle Daten zurückgibt, die von den seriellen Ports empfangen werden, und die durch Adresse und Checkcode verifiziert werden

Result =  "AE0";表示"创建串口失败:"
Result =  "CE0";表示"串口号未设置:"
Result =  "DE0";表示"停止位参数错误:"
Result =  "D00";表示"接收到正确解析的串口数据:"
Result =  "D01";表示"功能码 0x01--正确应答数据! :"
Result =  "D02";表示"功能码 0x02--正确应答数据 !"
Result =  "D03";表示"功能码 0x03--正确应答数据 !"
Result =  "D04";表示"功能码 0x04--正确应答数据 !"
Result =  "D05";表示"功能码 0x05--正确应答数据 !"
Result =  "D06";表示"功能码 0x06--正确应答数据 !"
Result =  "D0F";表示"功能码 0x0F--正确应答数据 !"
Result =  "D10";表示"功能码 0x10--正确应答数据 !"

 

deklariert Delegation über Ereignisse, Parameter für den Datentyp, die zurückgeschickt werden soll, Serienempfangdaten und MODBUS-Authentifizierung

public delegate void ModbusRTU_DecodeHandler(string result, byte[] msg) ;

 

Erstellt eine Liste von 1 MODBUS-RTU - Slaven;

DLL wird automatisch nach der Anzahl der Geräte scannen; für keine Funktionen, die Länge von 0 angeben kann; wie 16 - Eingang 16 - Ausgabe-Module können Sie angeben Eingabe-Register und halten die Länge von 0

/// <summary>
/// 建立扫描列表
/// </summary>
/// <param name="SlaveAddr">设置当前从站的站号</param>
/// <param name="CoilLen">设置当前从站的输出线圈个数</param>        /// <param name="DiscLen">设置当前从站的输入数字量个数</param>      /// <param name="InputRegLen">设置当前从站的输入寄存器个数</param>  /// <param name="HoldingRegLen">设置当前从站的保持寄存器个数</param>
public DeviceMdEnty(int SlaveAddr,  int CoilLen,  int DiscLen,  int InputRegLen,  int
HoldingRegLen)

 

 

 

 

Sollte man diese Informationen für ein echtes Projekt verwenden?

Gehen Sie zum Tool Center, um Nachrichten zu analysieren, CRC-Prüfungen und Geräte-Debugging zu erledigen, oder senden Sie Anforderungen für Auswahl - und Zugangsvorschläge.

Ingenieur Mitglied

Verwandeln Sie diesen Artikel in ein umsetzbares Debuggermaterial

Erweiterte Nachrichtenanalyse, Paket-Downloads, Codebeispiele, Engineering-Szenarien und Priority-Technischer Support sind für die Real-Projekt - Bereitstellung möglich.

Unbegrenzte Werkzeuge
Datenpaket und Codepaket
Vollständige Engineering Case-Basis
Vorrangiger Zugang zum technischen Support

Antwort veröffentlichen

Ihre E-Mail - Adresse wird nicht öffentlich gemacht. Erforderliche Elemente wurden verwendet * markiert.