public List <List <string> > CreateOPCRows(ConveyorRow conveyor) { List <List <string> > OPCRows = new List <List <string> >(); foreach (string signalMapping in conveyor.sSignalMapping) { int i = 0; int signalIndex = 1; if (bSignal && (signalMapping != "")) { var counts = baseParameter.SingleMappingTable.AsEnumerable().Count(p => p.Field <string>(baseParameter.SignalMappingColName.sType) == signalMapping); List <List <string> > OPCDataRows = CreateOPCRows(counts, baseParameter.Stemp5, conveyor, conveyor.sSignalAddress[i], signalIndex); signalIndex = signalIndex + OPCDataRows.Count(); OPCRows.AddRange(OPCDataRows); } i++; } if (bCommand && (conveyor.sCommandAddress != "")) { var CommandCounts = baseParameter.CommandMappingTable.AsEnumerable().Count(p => p.Field <string>(baseParameter.CommandMappingColName.sType) == conveyor.sCommandMapping); List <List <string> > OPCDataRows = CreateOPCRows(CommandCounts, baseParameter.Stemp6, conveyor, conveyor.sCommandAddress, 1); OPCRows.AddRange(OPCDataRows); } if (bHour && (conveyor.sRunningHours != "")) { int iHourCounts = 32; List <List <string> > OPCDataRows = CreateOPCRows(iHourCounts, baseParameter.Stemp7, conveyor, conveyor.sRunningHours, 1); OPCRows.AddRange(OPCDataRows); } return(OPCRows); }
public List <ElementSeacrhStruct> CreateElements(ConveyorRow conveyor) { List <ElementSeacrhStruct> element = new List <ElementSeacrhStruct>(); if (conveyor.sDrawOnViews.ToLower() == "all" || conveyor.sDrawOnViews.ToLower() == "level2only") { element.Add(new ElementSeacrhStruct(conveyor.sDisplayName, conveyor.sLevel1View, conveyor.sLevel2View, conveyor.sElementName)); } return(element); }
//public abstract string ToString(); //public abstract int ToInt(); public virtual List <List <string> > CreateList(CreateDataMath <List <string>, ConveyorRow> dataMath) { List <List <string> > lOutPut = new List <List <string> >(); foreach (DataRow selectConRow in baseParameter.TaglistTable.Rows) { var conveyor = new ConveyorRow(baseParameter.TaglistColName, selectConRow); lOutPut.AddRange(dataMath(conveyor)); } return(lOutPut); }
/// <summary> /// 创建TextBlock标签XAML代码类 /// </summary> /// <param name="conveyor"></param> /// <returns></returns> public List <BgTextBlock> CreatTextBlock(ConveyorRow conveyor) { List <BgTextBlock> textBlocks = new List <BgTextBlock>(); BgTextBlock textBlock = new BgTextBlock(); textBlock.Name = string.Format("teblock_{0}_{1}_{2}_{3}", conveyor.sSystem, conveyor.sPLC, conveyor.sEquipmentLine, conveyor.sElementName); textBlock.Text = string.Format("{0}.{1}", conveyor.sEquipmentLine, conveyor.sElementName); textBlock.Margin = initMargin; initMargin = initMargin.MarginChange(initMargin, textBlock.iColWidth, textBlock.iColHight); textBlocks.Add(textBlock); return(textBlocks); }
public override List <T1> CreateList <T1>(CreateDataMath <T1, ConveyorRow> dataMath) { List <T1> lOutPut = new List <T1>(); EnumerableRowCollection <DataRow> MainRows = LinqToTable(); foreach (DataRow selectConRow in MainRows) { var conveyor = new ConveyorRow(baseParameter.TaglistColName, selectConRow); lOutPut.AddRange(dataMath(conveyor)); } return(lOutPut); }
public virtual List <List <T1> > CreateList <T1>(CreateDataMath <T1, List <ConveyorRow> > dataMath) { List <List <T1> > lOutPut = new List <List <T1> >(); List <ConveyorRow> conveyors = new List <ConveyorRow>(); foreach (DataRow selectConRow in baseParameter.TaglistTable.Rows) { var conveyor = new ConveyorRow(baseParameter.TaglistColName, selectConRow); conveyors.Add(conveyor); } lOutPut.Add(dataMath(conveyors)); return(lOutPut); }
//生成DataTable数据 public override List <List <string> > CreateList(CreateDataMath <List <string>, ConveyorRow> dataMath) { List <List <string> > lOutPut = new List <List <string> >(); List <string> opcColunms = new List <string>(); foreach (string colunm in oPCColName) { opcColunms.Add(colunm); } lOutPut.Add(opcColunms); foreach (DataRow selectConRow in baseParameter.TaglistTable.Rows) { var conveyor = new ConveyorRow(baseParameter.TaglistColName, selectConRow); lOutPut.AddRange(dataMath(conveyor)); } return(lOutPut); }
private string getKeepAliveValue() { var ConveyorRows = from p in baseParameter.TaglistTable.AsEnumerable() where (p.Field <string>(baseParameter.TaglistColName.sElementName) == "KAL_MAIN") select p; foreach (DataRow conveyorRow in ConveyorRows) { ConveyorRow conveyor = new ConveyorRow(baseParameter.TaglistColName, conveyorRow); keepAlive = string.Format("{0}_{1}_{2}_{3}_ACTIVE", conveyor.sSystem, conveyor.sPLC, conveyor.sEquipmentLine, conveyor.sElementName); break; } if (ConveyorRows == null) { keepAlive = "Constant"; } return(keepAlive); }
public List <List <string> > CreateOPCInfoRows(ConveyorRow coneyorRow) { List <List <string> > opcInfoRows = new List <List <string> >(); int signalCount = 0; foreach (string sSignalMapping in coneyorRow.sSignalMapping) { if (sSignalMapping != "") { var SignalCounts = baseParameter.SingleMappingTable.AsEnumerable().Count(p => p.Field <string>(baseParameter.SignalMappingColName.sType) == sSignalMapping); List <string> lSignalName = sSignalName(SignalCounts, baseParameter.Stemp5, coneyorRow, signalCount + 1); signalCount += lSignalName.Count; foreach (string ss in lSignalName) { List <string> opcInfoRow = new List <string>(); opcInfoRow.Add(ss); opcInfoRow.Add("Subscribe"); opcInfoRow.Add(string.Format("S7_{0}", coneyorRow.sPLC)); opcInfoRow.Add("Main"); opcInfoRow.Add("u32"); opcInfoRows.Add(opcInfoRow); } } } if (coneyorRow.sCommandMapping != "") { var CommandCounts = baseParameter.CommandMappingTable.AsEnumerable().Count(p => p.Field <string>(baseParameter.CommandMappingColName.sType) == coneyorRow.sCommandMapping); List <string> lSingName = sSignalName(CommandCounts, baseParameter.Stemp6, coneyorRow, 1); foreach (string ss in lSingName) { List <string> opcInfoRow = new List <string>(); opcInfoRow.Add(ss); opcInfoRow.Add("Command"); opcInfoRow.Add(string.Format("S7_{0}", coneyorRow.sPLC)); opcInfoRow.Add("Main"); opcInfoRow.Add("u32"); opcInfoRows.Add(opcInfoRow); } } return(opcInfoRows); }
/// <summary> /// 根据Mapping判断需要的数据地址条数,生成对应的sSignalName数目集合. /// </summary> /// <param name="iBitCounts">bit数量</param> /// <param name="sTemp"></param> /// <param name="sSystem"></param> /// <param name="sPlcLink"></param> /// <param name="sEquipmentLine"></param> /// <param name="sEquipmentElement"></param> /// <param name="iSignalNumber"></param> /// <returns></returns> internal List <string> sSignalName(int iBitCounts, string sTemp, ConveyorRow conveyorRow, int iSignalNumber) { List <string> ssignalName = new List <string>(); int iCounts; if (iBitCounts <= 32) { ssignalName.Add(string.Format(sTemp, conveyorRow.sSystem, conveyorRow.sPLC, conveyorRow.sEquipmentLine, conveyorRow.sElementName, iSignalNumber)); } else { iCounts = (int)Math.Ceiling((float)iBitCounts / 32); for (int i = 0; i < iCounts; i++) { ssignalName.Add(string.Format(sTemp, conveyorRow.sSystem, conveyorRow.sPLC, conveyorRow.sEquipmentLine, conveyorRow.sElementName, iSignalNumber + i)); } } return(ssignalName); }
public override List <List <string> > CreateList(CreateDataMath <string, List <ConveyorRow> > dataMath) { EnumerableRowCollection <DataRow> MainRows = LinqToTable(); List <List <string> > lOutPut = new List <List <string> >(); var ELementLineGroups = from p in MainRows group p by new { system = p.Field <string>(baseParameter.TaglistColName.sSystem), plc = p.Field <string> (baseParameter.TaglistColName.sPLC), line = p.Field <string>(baseParameter.TaglistColName.sEquipmentLine), view = p.Field <string>(baseParameter.TaglistColName.sLevel2View), draw = p.Field <string>(baseParameter.TaglistColName.sDrawOnViews) } into pp select pp; foreach (var ELementLineGroup in ELementLineGroups) { List <string> lineSiganlData = new List <string>(); string sSystem = ELementLineGroup.Key.system; string sPlcLink = ELementLineGroup.Key.plc; string sEquipmentLine = ELementLineGroup.Key.line; string sAreaLevel2view = ELementLineGroup.Key.view; string sDraw = ELementLineGroup.Key.draw; if (sDraw.ToLower() == "all") { string sLinesSingle = string.Format("{0}_{1}_{2}_{3}_{4}_Line_AC", sSystem, sPlcLink, sEquipmentLine, sPlcLink, sAreaLevel2view); string sDescrible = string.Format("//LineCode for {0}", sLinesSingle) + "\r\n"; lineSiganlData.Add(sDescrible); List <ConveyorRow> conveyorRows = new List <ConveyorRow>(); foreach (DataRow selectConRow in ELementLineGroup) { var conveyorRow = new ConveyorRow(baseParameter.TaglistColName, selectConRow); conveyorRows.Add(conveyorRow); } lineSiganlData.AddRange(dataMath(conveyorRows)); lOutPut.Add(lineSiganlData); } } return(lOutPut); }
/// <summary> /// 创建L1画面元素XAML代码类(12307模式) /// </summary> /// <param name="conveyor"></param> /// <returns></returns> public List <BgElementCommonXaml> CreatL1CommonXaml12307(ConveyorRow conveyor) { List <BgElementCommonXaml> commonXamls = new List <BgElementCommonXaml>(); if (conveyor.sDrawOnViews.ToLower() == "all" || conveyor.sDrawOnViews.ToLower() == "level1only") { int elementCount = createElementCount(conveyor.sStyleIdentifier); for (int i = 1; i <= elementCount; i++) { BgElementCommonXaml commonXaml = new BgElementCommonXaml(); if (elementCount == 1) { commonXaml.Name = string.Format("{0}_{1}_{2}_{3}", conveyor.sSystem, conveyor.sPLC, conveyor.sEquipmentLine, conveyor.sElementName); } else { commonXaml.Name = string.Format("{0}_{1}_{2}_MULTI_{3}_{4}", conveyor.sSystem, conveyor.sPLC, conveyor.sEquipmentLine, i, conveyor.sElementName); } commonXaml.Style = string.Format("{0}StaticResource {1}{2}", "{", "Conveyor_Straight_L1", "}"); commonXaml.ScadaLevel = "Level1"; commonXaml.NavigateToView = string.Format("BG_SCADA.Views.{0}", conveyor.sLevel2View); commonXaml.ElementName = string.Format("{0}_{1}_{2}_{3}", conveyor.sSystem, conveyor.sPLC, conveyor.sEquipmentLine, conveyor.sElementName); commonXaml.ChooseLeftClickMode = "Navigation"; commonXaml.DisplayName = conveyor.sDisplayName; commonXaml.ElementXamlBehavior.behaviorName = "BGLineBehavior"; commonXaml.ControlObject = "BGLine"; //Margin位置计算 commonXaml.Margin = initMargin; initMargin = initMargin.MarginChange(initMargin, commonXaml.iColWidth, commonXaml.iColHight); commonXaml.PowerBox = conveyor.sPowerBox; commonXaml.ElementType = conveyor.sElementType; commonXaml.PlcName = conveyor.sPLC; commonXaml.CommandSignalName = commonXaml.ElementName + "_CM"; commonXaml.CommandMappingType = conveyor.sCommandMapping; commonXaml.TypeDescription = conveyor.sTypeDescription; //判断RightClick是否存在,存在则为“True” if (conveyor.sRightClick != "") { commonXaml.HasRightclickMenu = "True"; if (conveyor.sRightClick.Contains("Commands")) { commonXaml.Commands = string.Format(" Binding CommandSet[{0}#{1}]", commonXaml.CommandMappingType, commonXaml.CommandSignalName); } } //L1 Signal个数为一 ElementXamlSignal signalGroup = new ElementXamlSignal(); signalGroup.Id = string.Format("Signal{0}", 1); signalGroup.UsePostfix = "True"; signalGroup.Postfix = string.Format("_{0}_{1}_Line_AC", conveyor.sPLC, conveyor.sLevel2View); signalGroup.UsePrefix = "False"; signalGroup.Prefix = ""; signalGroup.KeepAliveType = "Constant"; signalGroup.KeepAliveSignal = keepAlive; commonXaml.ElementXamlSignal.Add(signalGroup); if (conveyor.sEdgeColor == "") { conveyor.sEdgeColor = "Blue"; } commonXaml.ElementXamlBackground.Color = string.Format("{0}StaticResource BG_COLOR_EDGE_{1}{2}", "{", conveyor.sEdgeColor, "}"); commonXamls.Add(commonXaml); } } return(commonXamls); }
/// <summary> /// 创建AlarmList行 /// </summary> /// <param name="coneyorRow"></param> /// <returns></returns> public List <List <string> > CreateAlarmListRows(ConveyorRow coneyorRow) { List <List <string> > aLarmListRows = new List <List <string> >(); string sSelectColName = baseParameter.SignalMappingColName.sType; string _sSignalName; string _sAckType; string _sAlarmTag; string _sPartName; string _sAlarmDes; string _sAlarmGrp; string _sAlarmType = ""; string _sAlarmCategory; string _sDelayed; string _sConditionName; string _sPriority; string _sGeneralComment; string _sLevel1View; string _sLevel2View; string _sResetable; string _sResetBit; string _sALNumber; string _sCCTVRecording; string _sElementID; string _sResetSignal; string _sExtraTagList; string _sCISData; string _sTechnical; List <string> lSignalName = new List <string>(); foreach (string sSignalMapping in coneyorRow.sSignalMapping) { if (sSignalMapping != "") { var SignalCounts = baseParameter.SingleMappingTable.AsEnumerable().Count(p => p.Field <string>(baseParameter.SignalMappingColName.sType) == sSignalMapping); var SingMappingRows = from p in baseParameter.SingleMappingTable.AsEnumerable() where p.Field <string>(sSelectColName) == sSignalMapping select p; List <string> lSignalName1 = sSignalName(SignalCounts, baseParameter.Stemp5, coneyorRow, lSignalName.Count() + 1); foreach (DataRow dr in SingMappingRows) { if (dr[4].ToString().Substring(0, 2) == "AL") { int indexSingal = Convert.ToInt32(dr[1]); _sSignalName = lSignalName1[indexSingal - 1]; int iAlarmPriority = Convert.ToInt32(dr[13]); if (iAlarmPriority <= 40) { _sAckType = "AutoAck"; } else { _sAckType = "Normal"; } _sAlarmTag = string.Format("{0}_{1}_{2}_{3}_{4}", coneyorRow.sSystem, coneyorRow.sPLC, coneyorRow.sEquipmentLine, coneyorRow.sElementName, dr[4].ToString()); string sPart = dr[5].ToString(); Regex reg = new Regex(@"\d"); Match match = reg.Match(coneyorRow.sPLC); string sCISPlcLink = reg.Replace(coneyorRow.sPLC, string.Format("#{0}", match.Groups[0].Value), 1); match = reg.Match(coneyorRow.sElementName); string sCISEquipmentElement = reg.Replace(coneyorRow.sElementName, string.Format("#{0}", match.Groups[0].Value), 1); if (sPart != "Spare") { _sAlarmTag = string.Format("{0}_{1}_{2}_{3}_{4}_{5}", coneyorRow.sSystem, coneyorRow.sPLC, coneyorRow.sEquipmentLine, coneyorRow.sElementName, sPart, dr[4].ToString()); _sPartName = coneyorRow.sDisplayName + "." + sPart; match = reg.Match(sPart); string sCISPart = reg.Replace(sPart, string.Format("#{0}", match.Groups[0].Value), 1); _sCISData = string.Format("{0}#.{1}.{2}#.{3}.{4}", coneyorRow.sSystem, sCISPlcLink, coneyorRow.sEquipmentLine, sCISEquipmentElement, sCISPart); } else { _sAlarmTag = string.Format("{0}_{1}_{2}_{3}_{4}", coneyorRow.sSystem, coneyorRow.sPLC, coneyorRow.sEquipmentLine, coneyorRow.sElementName, dr[4].ToString()); _sPartName = coneyorRow.sDisplayName; _sCISData = string.Format("{0}#.{1}.{2}#.{3}", coneyorRow.sSystem, sCISPlcLink, coneyorRow.sEquipmentLine, sCISEquipmentElement); } _sAlarmDes = dr[9].ToString(); _sAlarmGrp = coneyorRow.sAlarmTree; if (iAlarmPriority <= 20) { _sAlarmType = "Alarm Information"; } else if (iAlarmPriority <= 40) { _sAlarmType = "Alarm Trivial"; } else if (iAlarmPriority <= 60) { _sAlarmType = "Alarm Minor"; } else if (iAlarmPriority <= 80) { _sAlarmType = "Alarm Major"; } else if (iAlarmPriority > 80) { _sAlarmType = "Alarm Critical"; } _sAlarmCategory = ""; _sDelayed = "0"; int iBitVal = (int)Math.Log(Convert.ToInt64(dr[3]), 2); if (iBitVal < 10) { _sConditionName = string.Format("AlarmWordBit0{0}", iBitVal); } else { _sConditionName = string.Format("AlarmWordBit{0}", iBitVal); } _sPriority = iAlarmPriority.ToString(); _sGeneralComment = ""; _sLevel1View = coneyorRow.sLevel1View; _sLevel2View = coneyorRow.sLevel2View; _sResetable = "-"; _sResetBit = iBitVal.ToString(); _sALNumber = dr[4].ToString(); _sCCTVRecording = "-"; _sElementID = string.Format("{0}_{1}_{2}_{3}", coneyorRow.sSystem, coneyorRow.sPLC, coneyorRow.sEquipmentLine, coneyorRow.sElementName); _sResetSignal = ""; _sExtraTagList = ""; _sTechnical = "Flase"; List <string> alarmListRow = new List <string>(); alarmListRow.Add(_sSignalName); alarmListRow.Add(_sAckType); alarmListRow.Add(_sAlarmTag); alarmListRow.Add(_sPartName); alarmListRow.Add(_sAlarmDes); alarmListRow.Add(_sAlarmGrp); alarmListRow.Add(_sAlarmType); alarmListRow.Add(_sAlarmCategory); alarmListRow.Add(_sDelayed); alarmListRow.Add(_sConditionName); alarmListRow.Add(_sPriority); alarmListRow.Add(_sGeneralComment); alarmListRow.Add(_sLevel1View); alarmListRow.Add(_sLevel2View); alarmListRow.Add(_sResetable); alarmListRow.Add(_sResetBit); alarmListRow.Add(_sALNumber); alarmListRow.Add(_sCCTVRecording); alarmListRow.Add(_sElementID); alarmListRow.Add(_sResetSignal); alarmListRow.Add(_sExtraTagList); alarmListRow.Add(_sCISData); alarmListRow.Add(_sTechnical); aLarmListRows.Add(alarmListRow); } } } } return(aLarmListRows); }
public List <List <string> > CreateCMCRows(ConveyorRow conveyor) { List <List <string> > llCMCRows = new List <List <string> >(); List <string> _CMCRows = new List <string>(); //SignalName行 var SignalName = string.Format("//{0}_{1}_{2}_{3}", conveyor.sSystem, conveyor.sPLC, conveyor.sEquipmentLine, conveyor.sElementName); _CMCRows.Add(SignalName); if (SignalName.Contains("ENERGYSAVE")) { _CMCRows.Add("//" + conveyor.sCommandMapping); _CMCRows.Add("//" + conveyor.sCommandAddress); string PLCAddress = creatDBAddress(conveyor.sCommandAddress, 0); _CMCRows.Add(PLCAddress); } else { foreach (var signalMapping_Adderss in conveyor.sSignalMapping_Adderss) { _CMCRows.Add("//" + signalMapping_Adderss.Key); _CMCRows.Add("//" + signalMapping_Adderss.Value); var dataRows = from p in baseParameter.SingleMappingTable.AsEnumerable() where p.Field <string>(baseParameter.SignalMappingColName.sType) == signalMapping_Adderss.Key && p.Field <string>(baseParameter.SignalMappingColName.sAlarmStatusNumber).ToLower() != "spare" select p; foreach (var dataRow in dataRows) { var col = baseParameter.SignalMappingColName; var word = Convert.ToInt32(dataRow[col.sWord]); var bit = Convert.ToInt32(dataRow[col.sBit]); int offset = (word - 1) * 4 + bit / 8; int dBxbit = bit % 8; string PLCAddress = creatDBAddress(signalMapping_Adderss.Value, offset, dBxbit, true); _CMCRows.Add(PLCAddress); } } if (conveyor.sCommandMapping != "" && conveyor.sCommandAddress != "" && conveyor.sCommandAddress.ToLower() != "no_signal") { _CMCRows.Add("//" + conveyor.sCommandMapping); _CMCRows.Add("//" + conveyor.sCommandAddress); var dataRows = from p in baseParameter.CommandMappingTable.AsEnumerable() where p.Field <string>(baseParameter.CommandMappingColName.sType) == conveyor.sCommandMapping && p.Field <string>(baseParameter.CommandMappingColName.sCommandText).ToLower() != "spare" select p; foreach (var dataRow in dataRows) { var col = baseParameter.CommandMappingColName; var word = Convert.ToInt32(dataRow[col.sElementLink]); var bit = Convert.ToInt32(dataRow[col.sBit]); int offset = (word - 1) * 4 + bit / 8; int dBxbit = bit % 8; string PLCAddress = creatDBAddress(conveyor.sCommandAddress, offset, dBxbit, true); _CMCRows.Add(PLCAddress); } } } llCMCRows.Add(_CMCRows); return(llCMCRows); }
public List <List <TestSheetRow> > CreateTestRows(ConveyorRow conveyor) { List <TestSheetRow> testSheetRows = new List <TestSheetRow>(); //SignalName行 TestSheetRow signalNameRow = new TestSheetRow(); signalNameRow.SignalName_Mapping = string.Format("//{0}_{1}_{2}_{3}", conveyor.sSystem, conveyor.sPLC, conveyor.sEquipmentLine, conveyor.sElementName); testSheetRows.Add(signalNameRow); foreach (var signalMapping_Adderss in conveyor.sSignalMapping_Adderss) { //SignalMapping Name行 TestSheetRow signalMapping = new TestSheetRow(); signalMapping.SignalName_Mapping = "//" + signalMapping_Adderss.Key; testSheetRows.Add(signalMapping); //SignalAddress Name行 TestSheetRow signalAddress = new TestSheetRow(); signalAddress.SignalName_Mapping = "//" + signalMapping_Adderss.Value; testSheetRows.Add(signalAddress); //signalMapping state alarm 行 var dataRows = from p in baseParameter.SingleMappingTable.AsEnumerable() where p.Field <string>(baseParameter.SignalMappingColName.sType) == signalMapping_Adderss.Key && p.Field <string>(baseParameter.SignalMappingColName.sAlarmStatusNumber).ToLower() != "spare" select p; foreach (var dataRow in dataRows) { TestSheetRow datas = new TestSheetRow(); var col = baseParameter.SignalMappingColName; var word = Convert.ToInt32(dataRow[col.sWord]); var bit = Convert.ToInt32(dataRow[col.sBit]); int offset = (word - 1) * 4 + bit / 8; int dBxbit = bit % 8; if (signalMapping_Adderss.Value != "" && signalMapping_Adderss.Value != null) { datas.PLCAddress = creatDBAddress(signalMapping_Adderss.Value, offset, dBxbit, true); } else { datas.PLCAddress = ""; } datas.Function = dataRow[col.sAlarmStatusNumber].ToString(); datas.State = dataRow[col.sStateRef].ToString(); datas.FunctionText = dataRow[col.sFunctionalText].ToString(); datas.StateText = dataRow[col.sStateText].ToString(); if (col.sStateColor != "" && col.sStateColor != null) { datas.Color = dataRow[col.sStateColor].ToString(); } datas.Level1view = conveyor.sLevel1View; datas.Level2view = conveyor.sLevel2View; datas.LeftClick = conveyor.sLeftClick; datas.PartName = dataRow[col.sPartName].ToString(); testSheetRows.Add(datas); } } List <List <TestSheetRow> > llTestSheetRows = new List <List <TestSheetRow> >(); llTestSheetRows.Add(testSheetRows); return(llTestSheetRows); }
/// <summary> /// 创建L1画面元素XAML代码类(11302模式) /// </summary> /// <param name="conveyor"></param> /// <returns></returns> public List <BgElementCommonXaml> CreatL1CommonXaml11302(ConveyorRow conveyor) { List <BgElementCommonXaml> commonXamls = new List <BgElementCommonXaml>(); //判断Element Style 及个数 if (conveyor.sDrawOnViews.ToLower() == "all" || conveyor.sDrawOnViews.ToLower() == "level1only") { int elementCount = createElementCount(conveyor.sStyleIdentifier); for (int i = 1; i <= elementCount; i++) { BgElementCommonXaml commonXaml = new BgElementCommonXaml(); if (elementCount == 1) { commonXaml.Name = string.Format("{0}_{1}_{2}_{3}", conveyor.sSystem, conveyor.sPLC, conveyor.sEquipmentLine, conveyor.sElementName); } else { commonXaml.Name = string.Format("{0}_{1}_{2}_MULTI_{3}_{4}", conveyor.sSystem, conveyor.sPLC, conveyor.sEquipmentLine, i, conveyor.sElementName); } commonXaml.Style = string.Format("{0}StaticResource {1}{2}", "{", "Conveyor_Straight_L1", "}"); commonXaml.ScadaLevel = "Level1"; commonXaml.NavigateToView = string.Format("BG_SCADA.Views.{0}", conveyor.sLevel2View); commonXaml.ElementName = string.Format("{0}_{1}_{2}_{3}", conveyor.sSystem, conveyor.sPLC, conveyor.sEquipmentLine, conveyor.sElementName); commonXaml.ChooseLeftClickMode = "Navigation"; commonXaml.DisplayName = conveyor.sDisplayName; //当BehaviorName为空时,通过SignalMapping转换. if (conveyor.sBehaviorName == "") { foreach (string signalMapping in conveyor.sSignalMapping) { if (conveyor.sBehaviorName == "") { conveyor.sBehaviorName = signalMapping; } else { conveyor.sBehaviorName += signalMapping.Split(Convert.ToChar("_")).Last(); } } } commonXaml.ControlObject = conveyor.sBehaviorName; commonXaml.ElementXamlBehavior.behaviorName = string.Format("{0}Behavior", conveyor.sBehaviorName); //Margin位置计算 commonXaml.Margin = initMargin; initMargin = initMargin.MarginChange(initMargin, commonXaml.iColWidth, commonXaml.iColHight); commonXaml.PowerBox = conveyor.sPowerBox; commonXaml.ElementType = conveyor.sElementType; commonXaml.PlcName = conveyor.sPLC; commonXaml.CommandSignalName = commonXaml.ElementName + "_CM"; commonXaml.CommandMappingType = conveyor.sCommandMapping; commonXaml.TypeDescription = conveyor.sTypeDescription; //判断RightClick是否存在,存在则为“True” if (conveyor.sRightClick != "") { commonXaml.HasRightclickMenu = "True"; if (conveyor.sRightClick.Contains("Commands")) { commonXaml.Commands = string.Format(" Binding CommandSet[{0}#{1}]", commonXaml.CommandMappingType, commonXaml.CommandSignalName); } } //signal个数计算并遍历生成ElementXamlSignal集合 int signalCounts = 0; foreach (string signalMapping in conveyor.sSignalMapping) { var bitCounts = baseParameter.SingleMappingTable.AsEnumerable().Count(p => p.Field <string>(baseParameter.SignalMappingColName.sType) == signalMapping); if (bitCounts != 0) { signalCounts += (int)Math.Ceiling((float)bitCounts / 32); } } for (int j = 1; j <= signalCounts; j++) { ElementXamlSignal signalGroup = new ElementXamlSignal(); signalGroup.Id = string.Format("Signal{0}", j); signalGroup.UsePostfix = "True"; signalGroup.Postfix = string.Format("_SIGNAL_{0}", j); signalGroup.UsePrefix = "False"; signalGroup.Prefix = ""; signalGroup.KeepAliveType = "Constant"; signalGroup.KeepAliveSignal = keepAlive; commonXaml.ElementXamlSignal.Add(signalGroup); } if (conveyor.sEdgeColor == "") { conveyor.sEdgeColor = "Blue"; } commonXaml.ElementXamlBackground.Color = string.Format("{0}StaticResource BG_COLOR_EDGE_{1}{2}", "{", conveyor.sEdgeColor, "}"); commonXamls.Add(commonXaml); } } return(commonXamls); }
private List <List <string> > CreateOPCRows(int iBits, string sTemp, ConveyorRow conveyor, string sAddress, int index) { OPCDataRow opcRow = new OPCDataRow(); List <List <string> > opcDataRows = new List <List <string> >(); string sTagName; int iCounts; string sDaType = default(string); if (iBits <= 32) { List <string> opcDataRow = new List <string>(); sTagName = string.Format(sTemp, conveyor.sSystem, conveyor.sPLC, conveyor.sEquipmentLine, conveyor.sElementName, index); iCounts = (int)Math.Ceiling((float)iBits / 8); switch (iCounts) { case 0: break; case 1: sDaType = OPCDataType.sByte; break; case 2: sDaType = OPCDataType.sWord; break; case 3: break; case 4: sDaType = OPCDataType.sDWord; break; } opcRow.sTagName = sTagName; opcRow.sAddress = sAddress; opcRow.sDataType = sDaType; foreach (string s in opcRow) { opcDataRow.Add(s); } opcDataRows.Add(opcDataRow); } else { iCounts = (int)Math.Ceiling((float)iBits / 32); for (int i = 0; i < iCounts; i++) { List <string> opcDataRow = new List <string>(); sTagName = string.Format(sTemp, conveyor.sSystem, conveyor.sPLC, conveyor.sEquipmentLine, conveyor.sElementName, i + index); sDaType = OPCDataType.sDWord; opcRow.sTagName = sTagName; string sAddr = creatDBAddress(sAddress, i * 4); opcRow.sAddress = sAddr; opcRow.sDataType = sDaType; foreach (string s in opcRow) { opcDataRow.Add(s); } opcDataRows.Add(opcDataRow); } } return(opcDataRows); }