Здравствуйте уважаемые форумчане! Возникла проблема с чтением значения температуры на втором канале прибора ТРМ-138 (тип термопары ТХК(L)). Написал небольшую программку на C#, в которой вместо интерпретируемого ответа от прибора приходит какая то мне не понятная фигня) с Modbus до этого случая дел не имел, да и в программировании не слишком силён, поэтому хотелось бы услышать мнение старших товарищей)

Код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
using System.IO.Ports;


namespace ТРМ_138
{
   
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            serialPort1.Open(); 
        }

     

        private void button1_Click(object sender, EventArgs e)
        {

             serialPort1.Write(ReadHoldingRegister(16, 04, 0007, 0001), 0, 8);
            textBox1.Text = serialPort1.ReadByte().ToString();
            
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            //чтение портов доступных в системе
            string[] ports = SerialPort.GetPortNames();
            //Очистка содержимого бокса
            comboBox1.Items.Clear();
            //Добавление найденных портов в бокс
            comboBox1.Items.AddRange(ports);
        }

        public static byte[] ReadHoldingRegister(byte id, byte command, byte startAddress, byte length)
        {
            byte[] data = new byte[8];
            byte High, Low;
            data[0] = Convert.ToByte(16);
            data[1] = Convert.ToByte(4);
            byte[] _adr = BitConverter.GetBytes(startAddress);
            data[2] =07;
            data[3] =00;
            byte[] _length = BitConverter.GetBytes(length);
            data[4] = 01;
            data[5] = 00;
           myCRC(data, 6, out High, out Low);
            data[6] = Low;
            data[7] = High;
            //MessageBox.Show(data[6].ToString());
            //MessageBox.Show(data[7].ToString());
            return data;
        }

        public static void myCRC(byte[] message, int length, out byte CRCHigh, out byte CRCLow)
        {
            ushort CRCFull = 0xFFFF;
            for (int i = 0; i < length; i++)
            {
                CRCFull = (ushort)(CRCFull ^ message[i]);
                for (int j = 0; j < 8; j++)
                {
                    if ((CRCFull & 0x0001) == 0)
                        CRCFull = (ushort)(CRCFull >> 1);
                    else
                    {
                        CRCFull = (ushort)((CRCFull >> 1) ^ 0xA001);
                    }
                }
            }
            CRCHigh = (byte)((CRCFull >> 8) & 0xFFFF);
            CRCLow = (byte)(CRCFull & 0xFFFF);
          // MessageBox.Show(CRCLow.ToString());
          // MessageBox.Show(CRCHigh.ToString());
        }


        private void textBox1_TextChanged(object sender, EventArgs e)
        {
            
        }

        private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
        {
           // TextBox textBox1 = new TextBox();
            //textBox1.Text = serialPort1.ReadExisting().ToString();
        }
    }
}
Ответ от прибора выглядит следующим образом: 16 132 3 83 4 при этом не одно из значений не изменяется с изменением температуры. При это в программе ModScan64 всё работает нормально(скрины прилагаются).Безымянный.jpgБезымянный3.jpgБезымянный2.jpg