EasyModbus TCP. NET 예제 코드

무료무료 기술 자료

이 글은 바로 읽을 수 있으며 기초 학습과 검색 유입에 적합합니다.

EasyModbus TCP. NET 예제 코드

.NET:Modbus-RTU Master Simple Read and Write 操作

using System;
using EasyModbus;
 
namespace ModbusRS485Master
{
	class Program
	{
		public static void Main(string[] args)
		{
			ModbusClient modbusClient = new ModbusClient("COM1");
			//modbusClient.UnitIdentifier = 1; Not necessary since default slaveID = 1;
			//modbusClient.Baudrate = 9600;	// Not necessary since default baudrate = 9600
			//modbusClient.Parity = System.IO.Ports.Parity.None;
			//modbusClient.StopBits = System.IO.Ports.StopBits.Two;
			//modbusClient.ConnectionTimeout = 500;			
			modbusClient.Connect();
			
			Console.WriteLine("Value of Discr. Input #1: "+modbusClient.ReadDiscreteInputs(0,1)[0].ToString());	//Reads Discrete Input #1
			Console.WriteLine("Value of Input Reg. #10: "+modbusClient.ReadInput회원가입s(9,1)[0].ToString());	//Reads Inp. Reg. #10
			
			modbusClient.WriteSingleCoil(4,true);		//Writes Coil #5
			modbusClient.WriteSingle회원가입(19,4711);	//Writes Holding Reg. #20
			
			Console.WriteLine("Value of Coil #5: "+modbusClient.ReadCoils(4,1)[0].ToString());	//Reads Discrete Input #1
			Console.WriteLine("Value of Holding Reg.. #20: "+modbusClient.ReadHolding회원가입s(19,1)[0].ToString());	//Reads Inp. Reg. #10
			modbusClient.WriteMultiple회원가입s(49, new int[10] {1,2,3,4,5,6,7,8,9,10});
			modbusClient.WriteMultipleCoils(29, new bool[10] {true,true,true,true,true,true,true,true,true,true,});
			
			Console.Write("Press any key to continue . . . ");
			Console.ReadKey(true);
		}
	}
}

NET:Modbus-TCP 클라이언트简单读写操作

namespace ModbusClientApplication
{
    class Program
    {
        public static void Main(string[] args)
        {
            ModbusClient modbusClient = new ModbusClient("190.201.100.100", 502);    //Ip-주소 and Port of Modbus-TCP-Server
            modbusClient.Connect();                                                    //Connect to Server
            modbusClient.WriteMultipleCoils(4, new bool[] {true, true, true, true, true, true, true, true, true, true});    //Write Coils 시작ing with 주소 5
            bool[] readCoils = modbusClient.ReadCoils(9,10);                        //Read 10 Coils from Server, 시작ing with 주소 10
            int[] readHolding회원가입s = modbusClient.ReadHolding회원가입s(0,10);    //Read 10 Holding 회원가입s from Server, 시작ing with 주소 1

            // Console Output
            for (int i = 0; i < readCoils.Length; i++)
                Console.WriteLine("Value of Coil " + (9 + i + 1) + " " + readCoils[i].ToString());
                        
            for (int i = 0; i < readHolding회원가입s.Length; i++)
                Console.WriteLine("Value of Holding회원가입 " + (i + 1) + " "+ readHolding회원가입s[i].ToString());            
            modbusClient.Disconnect();                                                //Disconnect from Server
            Console.Write("Press any key to continue . . . ");
            Console.ReadKey(true);
        }
    }
}

从模组服务器읽기值并将值发布到 MQTT 代理

 class Program
    {
        static void Main(string[] args)
        {
            EasyModbus.ModbusClient modbusClient = new EasyModbus.ModbusClient(
            Conne ction Time out 를 5 초 로 늘 리 십시오 .
            mod bus C li ent . Conne ction Time out = 5000 ;
            우리는 로 그 파일을 만듭니다 .또한 이벤트 로 깅 을 활성화 합니다 . 
            modbusClient.LogFileFilename = 
            M Q TT - Br oker 에 보낸 메시 지는 Br oker 에 보존 됩니다 .가입 후 , 클 라이언 트는 자동 으로
            마지막으로 저장 된 메시지를 수신 합니다 . Rece ive the last reta ined message . By default the Retain-Flag is FALSE -
            mod bus C li ent . M q tt R eta in M ess ages = true ;
            Mod bus TCP 서버 에 연결 하기
            mod bus C li ent . Connect () ;
            while (tr ue)
            {
                서버 에서 두 개의 레 지 스트 리를 읽고 M Q TT - Br oker 에 게시 합니다 .기본적으로 값 이 게시 됩니다 . By default V alu es are published
                기본적으로 우리는 ' e as ym od bus cli ent /' 과 주 소를 게시 합니다 . e . g . ' ' e as ym od bus cli ent / holding reg ister 1 ' '
                // The propery 기본적으로 the 
                M Q TT - 브 로 커 포 트는 188 3 입니다 .
                int[] holding회원가입 = modbusClient.ReadHolding회원가입s(60, 2, 
                System . Th re ading . Thread . Sleep (1 000)
            }
            mod bus C li ent . Dis conne ct () ;
            Con sole . Read K ey () ;
        }
    }

모듈 서버 에서 값을 자동 으로 폴 링 하고 M Q TT 에이 전 트에 게시 - 주제 변경

        st atic vo id Main ( string [ ] arg s)
        {
            Easy Mod bus . Easy Mod bus 2 M q tt easy Mod bus 2 M q tt = new Easy Mod bus . Easy Mod bus 2 M q tt ();
            //easyModbus2Mqtt.AutomaticReconnect
            easyModbus2Mqtt.MqttUser이름 = 
            easyModbus2Mqtt.MqttPassword = 
            easy Mod bus 2 M q tt . M q tt B rok er Port = 1897 2;
            //easyModbus2Mqtt.MqttBroker주소
            //easyModbus2Mqtt.MqttBroker주소
            easyModbus2Mqtt.MqttBroker주소 = 
            easyModbus2Mqtt.ModbusIP주소 = 
            easyModbus2Mqtt.AddReadOrder(EasyModbus.기능Code.ReadCoils, 2, 0, 200, new string[] { 
            easy Mod bus 2 M q tt . Add Read Or der (E asy Mod bus . Fun ction C ode . Read In put Reg ister s , 2, 0, 200);
            Easy Mod bus . Read Or der read Or der = new Easy Mod bus . Read Or der () ;
            [ 중 고 ] [ 중 고 ] [ 중 고 ] [ 중 고 ] [ 중 고 ] [ 중 고 ] [ 중 고 ] [ 중 고 ] [ 중 고 ]
            readOrder.Unit = new string[10] {
            read Or der . S cale = new flo at [10] { 0. 1 f , 0. 1 f , 0. 1 f , 0. 1 f , 0. 1 f , 0. 1 f , 0. 1 f , 0. 1 f , 0. 1 f , 0. 1 f } ;
            read Or der . Quant ity = 10
            read Or der . Start ing Add ress = 10;
            read Or der . Fun ction C ode = Easy Mod bus . Fun ction C ode . Read H old ing Reg ister s ;          
            easy Mod bus 2 M q tt . Add Read Or der (read Or der);
            easy Mod bus 2 M q tt . 시작 () ;
        }

Mod bus - TCP 서버 , 변경 된 값을 M Q TT - Br oker 에 게시 합니다 .

   클래 스 프로그램
    {
        st atic vo id Main ( string [ ] arg s)
        {
            프로그램 application = new Program ();
            application.시작Server ();

        }

        public vo id 시작 Ser ver ()
        {
            Easy Mod bus . Mod bus Ser ver mod bus Ser ver = new Easy Mod bus . Mod bus Ser ver ();
            modbusServer.MqttRootTopic = 
            modbusServer.MqttBroker주소 = 
            mod bus Ser ver . Listen () ;
            mod bus Ser ver . holding Reg ister s C hang ed + = new Easy Mod bus . Mod bus Ser ver . Hold ing Reg ister s C hang ed (hold ing Reg ister s C hang ed);
            Con sole . Read K ey () ;
            
            mod bus Ser ver . Stop L isten ing () ;
        }

        public vo id holding Reg ister s C hang ed (int beginning Add ress , int quant ity)
        {
            Con sole . Write L ine (시작 ing Add ress);
            Con sole . Write L ine (quant ity);
        }
    }

Easy Mod bus TCP / U DP / R TU . NET 라이 브 러 리 링크 는 이 페이지 에서 다운로드 할 수 있습니다 .

실제 프로젝트에 이 자료를 활용하시겠습니까?

도구 센터에서 프레임 분석, CRC 검증, 장비 디버깅을 진행하거나 요청을 제출하여 선정 및 연동 제안을 받아보세요.

엔지니어 회원

이 글을 실행 가능한 디버깅 자료로 활용하세요

가입하면 고급 프레임 분석, 자료 패키지 다운로드, 코드 예제, 엔지니어링 사례, 우선 기술 지원을 이용할 수 있어 실제 프로젝트 납품에 적합합니다.

고급 도구 무제한 이용
자료 패키지와 코드 패키지
완전한 엔지니어링 사례 라이브러리
우선 기술 지원 채널

답글 작성

이메일 주소는 공개되지 않습니다. 必填项已用 * 标注