Esempio n. 1
0
 public void DealData(string value, int zoomFlag = 1)
 {
     try
     {
         //获取设置的数据
         ushort valueSet = (ushort)(decimal.Parse(value) * zoomFlag);
         //判断modBus是否已经打开
         if (null == modbus)
         {
             MessageBox.Show("请先打开串口,否则无法设置参数");
             return;
         }
         //电阻
         if (modbus.WriteDatasEx(this._address, BitConverter.GetBytes(valueSet), 3000))
         {
             //如果修改成功的话,就重新读取这个数值
             byte[] dataList = modbus.ReadDataFromPLC(this._address, 2, 3000);
             this._sender.Text = ((decimal)((BitConverter.ToUInt16(dataList, 0)) / (zoomFlag * 1.0f))) + "";
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message);
     }
 }
Esempio n. 2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="address"></param>
        /// <param name="textBox"></param>
        /// <param name="modbus"></param>
        /// <param name="zoomFlag"></param>
        /// <param name="numberByte">读取的字节数据</param>
        private void InitValue(int address, TextBox textBox, PLCSerialPort modbus, int zoomFlag = 1, int numberByte = 2)
        {
            byte[] value = modbus.ReadDataFromPLC(address, numberByte, ReadTimeOut);
            //Int16 dataValue = BitConverter.ToInt16(value, 0);
            //Int16 dataValue = (Int16)value[0];
            GetReadValue(out int dataValue, numberByte, value);
            this.Invoke(new Action(() =>
            {
                textBox.Text = ((decimal)(dataValue / (zoomFlag * 1.0f))) + "";
            }));

            Console.WriteLine($"读取的数据:{dataValue} 转化后的数据:{textBox.Text}");
        }
Esempio n. 3
0
        /// <summary>
        /// 读取运行参数
        /// </summary>
        private void GetRunParameter()
        {
            this._allAngle = BitConverter.ToUInt16(_plcSerialPort.ReadDataFromPLC((int)RegisterSetting.角度, 2, ReadTimeOut), 0) / 100m;
            this.Invoke(new Action(() =>
            {
                this.tbAllAngle.Text = _allAngle + "";
            }));
            this._upError = BitConverter.ToUInt16(_plcSerialPort.ReadDataFromPLC((int)RegisterSetting.总阻最大正向允许误差, 2, ReadTimeOut), 0) / 100m;
            Console.WriteLine("上限误差:" + _upError);
            this._downError = BitConverter.ToUInt16(_plcSerialPort.ReadDataFromPLC((int)RegisterSetting.总阻最大负向允许误差, 2, ReadTimeOut), 0) / 100m;
            Console.WriteLine("下限误差:" + _downError);


            //获取电压的上下限
            var uMax = BitConverter.ToInt16(_plcSerialPort.ReadDataFromPLC((int)RegisterSetting.电压上限, 2, ReadTimeOut), 0);

            Console.WriteLine($"电压的上限:{uMax}--{uMax / (100m)}");
            this._uMax = (uMax / 100m);
            var uMin = BitConverter.ToInt16(_plcSerialPort.ReadDataFromPLC((int)RegisterSetting.电压下限, 2, ReadTimeOut), 0);

            Console.WriteLine($"电压的上限:{uMin}--{uMin / (100m)}");
            this._uMin = (uMin / 100m);
        }