public void WriteActiveReference(string reference)
        {
            var data     = ModbusTcpHelper.AsciiStringToByteArray(reference);
            var dataWord = ModbusTcpHelper.ByteArrayToWordArray(data);

            ArrayFunctions.InsertArray(_memory, dataWord, ActiveReferenceStartAddress);
        }
        public string ReadActiveReference()
        {
            var data     = _memory.SubArray(ActiveReferenceStartAddress, 5);
            var dataByte = ModbusTcpHelper.WordArrayToByteArray(data, 5);

            return(ModbusTcpHelper.ByteArrayToAsciiString(dataByte));
        }
        public void WriteProductInUnloading(string dataMatrix)
        {
            var data     = ModbusTcpHelper.AsciiStringToByteArray(dataMatrix);
            var dataWord = ModbusTcpHelper.ByteArrayToWordArray(data);

            ArrayFunctions.InsertArray(_memory, dataWord, UnloadingStartAddress);
        }
        public string ReadProductInUnloading()
        {
            var data     = _memory.SubArray(UnloadingStartAddress, 20);
            var dataByte = ModbusTcpHelper.WordArrayToByteArray(data, 20);

            return(ModbusTcpHelper.ByteArrayToAsciiString(dataByte));
        }
        public string ReadActiveReference()
        {
            byte[] data = { };
            PlcCommand.ReadActiveReference(_plcMaster, ref data);
            var result = ModbusTcpHelper.ByteArrayToAsciiString(data);

            return(result);
        }
        public string ReadProductInUnloading()
        {
            byte[] data = { };
            PlcCommand.ReadProductInUnloading(_plcMaster, ref data);
            var result = ModbusTcpHelper.ByteArrayToAsciiString(data);

            return(result);
        }
        public int[] ReadScanData()
        {
            byte[] data = {};
            PlcCommand.ReadScanData(_plcMaster, ref data);
            var dataWord = ModbusTcpHelper.ByteArrayToWordArray(data);

            return(dataWord);
        }
        private void match(object i)
        {
            string armid = "-";

            try
            {
                int[] status = new int[455];
                //List<string> updatestrings = new List<string> { };
                int    row = (int)i;
                string ip  = dt.Rows[row][1].ToString();
                armid = dt.Rows[row][0].ToString();

                ModbusTcpHelper mt = new ModbusTcpHelper(ip, 502);
                mt.Connect();

                if (mt.GetConnect())
                {
                    byte[] return_bytes;
                    mt.discover_loopandgroup();

                    while (true)
                    {
                        Thread.Sleep(10);
                        if (mt.GetReturnData() != null)
                        {
                            return_bytes = mt.GetReturnData();
                            break;
                        }
                    }

                    if (return_bytes.Length == 57)
                    {
                        byte[] loop_bytes = new byte[48];

                        for (int j = 0; j < loop_bytes.Length; j++)
                        {
                            if (j < 47)
                            {
                                loop_bytes[j] = return_bytes[j + 9];
                                string temp = Convert.ToString(loop_bytes[j], 2);
                                char[] bin  = stringtobin(temp);
                                for (int k = 0; k < 8; k++)
                                {
                                    status[8 * j + k] = Convert.ToInt32(bin[7 - k].ToString());
                                }
                            }
                            else if (j == 47)
                            {
                                loop_bytes[j] = return_bytes[j + 9];
                                string temp = Convert.ToString(loop_bytes[j], 2);
                                char[] bin  = stringtobin(temp);
                                for (int k = 0; k < 7; k++)
                                {
                                    status[8 * j + k] = Convert.ToInt32(bin[7 - k].ToString());
                                }
                            }
                        }
                    }
                }

                mt.disconnect();
                Thread.Sleep(50);

                ModbusTcpHelper mt_model = new ModbusTcpHelper(ip, 502);
                mt_model.Connect();
                if (mt_model.GetConnect())
                {
                    byte[] return_bytes_model;
                    mt_model.discover_model();

                    while (true)
                    {
                        Thread.Sleep(10);
                        if (mt_model.GetReturnData() != null)
                        {
                            return_bytes_model = mt_model.GetReturnData();
                            break;
                        }
                    }

                    if (return_bytes_model.Length == 18)
                    {
                        byte[] model_bytes = new byte[9];

                        for (int j = 0; j < model_bytes.Length; j++)
                        {
                            model_bytes[j] = return_bytes_model[j + 9];
                            string temp = Convert.ToString(model_bytes[j], 2);
                            char[] bin  = stringtobin(temp);
                            for (int k = 0; k < 8; k++)
                            {
                                status[8 * j + k + 383] = Convert.ToInt32(bin[7 - k].ToString());
                            }
                        }
                    }
                }

                CommonlyFunctions.ExecuteSqlTran(armid, status);
            }
            catch (Exception ex)
            {
                CommonlyFunctions.insertlog(Guid.NewGuid().ToString(), armid, "0", "匹配OPIU寄存器状态异常", DateTime.Now, "-", "-", ex.Message.ToString());
            }
        }