private void button22_Click(object sender, EventArgs e)
 {
     // short写入
     try
     {
         DemoUtils.WriteResultRender(busAsciiClient.Write(textBox8.Text, short.Parse(textBox7.Text)), textBox8.Text);
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message);
     }
 }
Exemple #2
0
 public byte[] BuildWriteByte(byte station, string address, byte[] value)
 {
     try
     {
         DemoUtils.WriteResultRender(busAsciiClient.Write(address, value), address);
     }
     catch (Exception ex)
     {
         EventscadaException?.Invoke(this.GetType().Name, ex.Message);
     }
     return(new byte[0]);
 }
        public bool Write(string address, dynamic value)
        {
            int Address = DMT.DevToAddrW("DVP", address, Station);

            if (value is bool)
            {
                busAsciiClient.Write($"{Address}", value);
            }
            else
            {
                busAsciiClient.Write($"{Address}", value);
            }

            return(true);
        }
        public bool Write(string address, dynamic value)
        {
            busAsciiClient.Write(address, value);


            return(true);
        }
        private void RegisterExample( )
        {
            // 读取寄存器100的值
            short register100 = modbus.ReadInt16("100").Content;

            // 批量读取寄存器100-109的值
            short[] register100_109 = modbus.ReadInt16("100", 10).Content;

            // 写入寄存器100的值,注意,一定要强制转换short类型
            modbus.Write("100", (short)123);

            // 批量写
            modbus.Write("100", new short[] { 123, -123, 4244 });


            // ==============================================================================================
            // 以下是一些常规的操作,不再对是否成功的结果进行判断
            // 读取操作

            bool   coil100   = modbus.ReadCoil("100").Content;      // 读取线圈100的通断
            short  short100  = modbus.ReadInt16("100").Content;     // 读取寄存器100的short值
            ushort ushort100 = modbus.ReadUInt16("100").Content;    // 读取寄存器100的ushort值
            int    int100    = modbus.ReadInt32("100").Content;     // 读取寄存器100-101的int值
            uint   uint100   = modbus.ReadUInt32("100").Content;    // 读取寄存器100-101的uint值
            float  float100  = modbus.ReadFloat("100").Content;     // 读取寄存器100-101的float值
            long   long100   = modbus.ReadInt64("100").Content;     // 读取寄存器100-103的long值
            ulong  ulong100  = modbus.ReadUInt64("100").Content;    // 读取寄存器100-103的ulong值
            double double100 = modbus.ReadDouble("100").Content;    // 读取寄存器100-103的double值
            string str100    = modbus.ReadString("100", 5).Content; // 读取100到104共10个字符的字符串

            // 写入操作
            modbus.WriteCoil("100", true);            // 写入线圈100为通
            modbus.Write("100", (short)12345);        // 写入寄存器100为12345
            modbus.Write("100", (ushort)45678);       // 写入寄存器100为45678
            modbus.Write("100", 123456789);           // 写入寄存器100-101为123456789
            modbus.Write("100", (uint)123456778);     // 写入寄存器100-101为123456778
            modbus.Write("100", 123.456);             // 写入寄存器100-101为123.456
            modbus.Write("100", 12312312312414L);     //写入寄存器100-103为一个大数据
            modbus.Write("100", 12634534534543656UL); // 写入寄存器100-103为一个大数据
            modbus.Write("100", 123.456d);            // 写入寄存器100-103为一个双精度的数据
            modbus.Write("100", "K123456789");

            // ===============================================================================================
            // 读取输入寄存器
            short  input_short100  = modbus.ReadInt16("x=4;100").Content;     // 读取寄存器100的short值
            ushort input_ushort100 = modbus.ReadUInt16("x=4;100").Content;    // 读取寄存器100的ushort值
            int    input_int100    = modbus.ReadInt32("x=4;100").Content;     // 读取寄存器100-101的int值
            uint   input_uint100   = modbus.ReadUInt32("x=4;100").Content;    // 读取寄存器100-101的uint值
            float  input_float100  = modbus.ReadFloat("x=4;100").Content;     // 读取寄存器100-101的float值
            long   input_long100   = modbus.ReadInt64("x=4;100").Content;     // 读取寄存器100-103的long值
            ulong  input_ulong100  = modbus.ReadUInt64("x=4;100").Content;    // 读取寄存器100-103的ulong值
            double input_double100 = modbus.ReadDouble("x=4;100").Content;    // 读取寄存器100-103的double值
            string input_str100    = modbus.ReadString("x=4;100", 5).Content; // 读取100到104共10个字符的字符串
        }