예제 #1
0
        public string GetMeasurementItemText(MeasurementItemViewKind viewKind)
        {
            StringBuilder sb = new StringBuilder("");

            if ((viewKind & MeasurementItemViewKind.DBId) != 0)
            {
                sb.Append($"[{Id.ToString()}]");
            }

            if ((viewKind & MeasurementItemViewKind.LogTime) != 0)
            {
                sb.AppendSeparated(LogTime.ToString());
            }

            if ((viewKind & MeasurementItemViewKind.EventTime) != 0)
            {
                sb.AppendSeparated(EventTime.ToString());
            }

            if ((viewKind & MeasurementItemViewKind.Value) != 0)
            {
                sb.AppendSeparated(MeasuredValue.ToString());
            }

            if ((viewKind & MeasurementItemViewKind.Unit) != 0)
            {
                sb.AppendSeparated(MeasuredUnit.ToString());
            }

            return(sb.ToString());
        }
예제 #2
0
        private void HandingOffsetCorrectionValues(ref ModbusIpMaster master)
        {
            if (master == null)
            {
                Logger.WriteDebugLog("Getting Null for ModbusIpMaster object master. Exiting From HandingOffsetCorrectionValues()");
                return;
            }

            ushort[] ReadDataFlag;
            ushort[] Output;
            int      SlNo;
            int      PartID;
            int      OperationID;
            int      Dimension;
            int      IterationCount;
            float    MeanVal;
            float    LambdaVal;
            float    LVal;
            float    SigmaVal;
            float    MeasuredValue;
            float    EWMAVal;
            float    LCLVal;
            float    UCLVal;
            float    CorrectionValue;
            float    MaxCorrectionStep;
            DateTime MeasuredDateTime;

            try
            {
                ReadDataFlag = master.ReadHoldingRegisters(HoldingRegForReadDataFlag, (ushort)1);

                if (ReadDataFlag[0] == 1)
                {
                    Logger.WriteDebugLog("Read Flag (606) is High");
                    Output         = master.ReadHoldingRegisters(HoldingRegForSerialNo, (ushort)1);
                    SlNo           = Output[0];
                    Output         = master.ReadHoldingRegisters(HoldingRegForPartID, (ushort)1);
                    PartID         = Output[0];
                    Output         = master.ReadHoldingRegisters(HoldingRegForDimension, (ushort)1);
                    Dimension      = Output[0];
                    Output         = master.ReadHoldingRegisters(HoldingRegForOperationID, (ushort)1);
                    OperationID    = Output[0];
                    Output         = master.ReadHoldingRegisters(HoldingRegisterForIterationCount, (ushort)1);
                    IterationCount = Output[0];

                    Output            = master.ReadHoldingRegisters(HoldingRegForMean, (ushort)2);
                    MeanVal           = GetFloat(Output);
                    Output            = master.ReadHoldingRegisters(HoldingRegForLambda, (ushort)2);
                    LambdaVal         = GetFloat(Output);
                    Output            = master.ReadHoldingRegisters(HoldingRegForL, (ushort)2);
                    LVal              = GetFloat(Output);
                    Output            = master.ReadHoldingRegisters(HoldingRegForSigma, (ushort)2);
                    SigmaVal          = GetFloat(Output);
                    Output            = master.ReadHoldingRegisters(HoldingRegForMeasuredVal, (ushort)2);
                    MeasuredValue     = GetFloat(Output);
                    Output            = master.ReadHoldingRegisters(HoldingRegForEWMA, (ushort)2);
                    EWMAVal           = GetFloat(Output);
                    Output            = master.ReadHoldingRegisters(HoldingRegForLCL, (ushort)2);
                    LCLVal            = GetFloat(Output);
                    Output            = master.ReadHoldingRegisters(HoldingRegForUCL, (ushort)2);
                    UCLVal            = GetFloat(Output);
                    Output            = master.ReadHoldingRegisters(HoldingRegForCorrectionVal, (ushort)2);
                    CorrectionValue   = GetFloat(Output);
                    Output            = master.ReadHoldingRegisters(HoldingRegForMaxCorrectionStep, (ushort)2);
                    MaxCorrectionStep = GetFloat(Output);
                    Output            = master.ReadHoldingRegisters(HoldingRegForNGComponent, (ushort)1);
                    int ngComponent = Output[0];
                    Output = master.ReadHoldingRegisters(HoldingRegForAltCorrecting, (ushort)1);
                    int altCorrection = Output[0];

                    Output = master.ReadHoldingRegisters(HoldingRegForMeasuredDate, (ushort)2);
                    string MeasuredDate = ModbusUtility.GetUInt32(Output[1], Output[0]).ToString("00000000");
                    Output = master.ReadHoldingRegisters(HoldingRegForMeasuredTime, (ushort)2);
                    string MeasuredTime = ModbusUtility.GetUInt32(Output[1], Output[0]).ToString("000000");
                    MeasuredDateTime = DateTime.ParseExact(string.Format("{0}{1}", MeasuredDate, MeasuredTime), "yyyyMMddHHmmss", null);

                    Logger.WriteDebugLog(string.Format("Data Received : MC-{0} PartID-{1} Operation-{2} Operator-{3} Dimension-{4} Mean-{5} Lambda-{6} L-{7} Sigma-{8} Measured Value-{9} EWMA-{10} LCL-{11} UCL-{12} Correction Value-{13} Max Correction Step-{14} Measured DateTime-{15} Iteration Count-{16}", this._interfaceId, PartID, OperationID, "1", Dimension, MeanVal.ToString("00.0000"), LambdaVal.ToString("00.0000"), LVal.ToString("00.0000"), SigmaVal.ToString("00.0000"), MeasuredValue.ToString("00.0000"), EWMAVal.ToString("00.0000"), LCLVal.ToString("00.0000"), UCLVal.ToString("00.0000"), CorrectionValue.ToString("00.0000"), MaxCorrectionStep.ToString("00.0000"), MeasuredDateTime.ToString("dd-MMM-yyyy HH:mm:ss"), IterationCount));

                    DatabaseAccess.InsertDataToSPCAutoData(this._interfaceId, PartID, OperationID, "1", Dimension, MeanVal, LambdaVal, LVal, SigmaVal, MeasuredValue, EWMAVal, LCLVal, UCLVal, CorrectionValue, MaxCorrectionStep, MeasuredDateTime, IterationCount, ngComponent, altCorrection);

                    master.WriteSingleRegister(HoldingRegForACK, (ushort)SlNo);
                    master.WriteSingleRegister(HoldingRegForReadDataFlag, (ushort)2);
                    Logger.WriteDebugLog("Read Flag (606) is set to Low");
                }

                #region Communication
                //send communicationNo
                try
                {
                    master.WriteSingleRegister(HoldingRegisterForCommunictaion, commNo);
                }
                catch (Exception ex)
                {
                    if (master != null)
                    {
                        master.Dispose();
                    }
                    Logger.WriteErrorLog(ex.ToString());
                }
                if (commNo == 100)
                {
                    commNo = 200;
                }
                else
                {
                    commNo = 100;
                }

                #endregion
            }
            catch (Exception ex)
            {
                Logger.WriteErrorLog("Exception In HandingOffsetCorrectionValues() : " + ex.Message);
            }
        }