dequan.zhang 3 years ago
parent
commit
f05cc43f11
  1. 6
      ServicesCenter/WCF/OpcServerHost/App.config
  2. 178
      ServicesCenter/WCF/OpcServerHost/OpcDeal/ParaInit.cs
  3. 10
      ServicesCenter/WindowsServices/OpcService/app.config

6
ServicesCenter/WCF/OpcServerHost/App.config

@ -4,13 +4,13 @@
<add key="ServerAddressIP" value="net.tcp://127.0.0.1:4444/OpcService"/>
<!--<add key="OPCServerIP" value="10.111.226.150" />-->
<add key="OPCServerIP" value="127.0.0.1" />
<add key="OPCServerName" value="Kepware.KEPServerEX.V5" />
<add key="OPCServerName" value="Kepware.KEPServerEX.V6" />
<!--<add key="OPCServerName" value="kepware.KEPServerEX.V5" />-->
<add key="PRODUCELINE" value="VW331_IP" />
<add key="PRODUCELINE" value="CFAACD" />
</appSettings>
<connectionStrings>
<add name="maindb" connectionString="Data Source=YANYG-PC\YANYG;Initial Catalog=ADIENT_QD_MES;User Id=sa;Password=db2012;" providerName="System.Data.SqlClient"/>
<add name="maindb" connectionString="Data Source=10.111.144.98;Initial Catalog=ADIENT_CD_MES;User Id=CDMESADM;Password=CDmes123;" providerName="System.Data.SqlClient"/>
</connectionStrings>
<system.serviceModel>
<client>

178
ServicesCenter/WCF/OpcServerHost/OpcDeal/ParaInit.cs

@ -313,6 +313,55 @@ namespace OpcServerHost.Init
#endregion
#region 条码信息
List<ParameterConfig> barcodePara = paraConfigList
.Where(o => o.MACHINECODDE == m.MACHINECODDE
&& o.MOLDNUMBER == m.MOLDNUMBER
&& o.COLUMNTYPE == OpcEnumGeter.COLUMNTYPE.BARCODE.GetHashCode().ToString())
.ToList<ParameterConfig>();
if (barcodePara.Count > 0)
{
//创建该设备该模块下的条码组
opcplcConnection.CreateGroup(m.MACHINECODDE + ":" + m.MOLDNUMBER + ":BarCodePara");
//变该模块下的所有参数信息
foreach (var pc in barcodePara)
{
//初始化字典名称: 设备名称+模块编号+字段名称
string dicKeyStr = machineEntity.MACHINECODDE + ":" + m.MOLDNUMBER + ":" + pc.COLUMNCODE;
try
{
//初始化字段信息值为0
parameterValueDict.Add(dicKeyStr, 0);
//获取opc中tagName
string itemName = pc.CONNECTIONSTRING;
clientHandleValue++;
clientHandleDict.Add(clientHandleValue, dicKeyStr);
//将字典中的与PLC内存地址向绑定
//parameterValueDict[dicKeyStr] = opcplcConnection.AddKepItem(itemName, clientHandleValue);
opcItemDict[dicKeyStr] = opcplcConnection.AddKepOPCItem(itemName, clientHandleValue);
parameterValueDict[dicKeyStr] = opcItemDict[dicKeyStr].ServerHandle;
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
Console.WriteLine(dicKeyStr);
continue;
}
}
}
#endregion
#region 监控组
//获取设备扫描条码完成标记和设备加工完成标记
@ -324,6 +373,7 @@ namespace OpcServerHost.Init
o.COLUMNTYPE == OpcEnumGeter.COLUMNTYPE.COMPLETEFLAG.GetHashCode().ToString()
|| o.COLUMNTYPE == OpcEnumGeter.COLUMNTYPE.TEMPCOMPLETE.GetHashCode().ToString()
|| o.COLUMNTYPE == OpcEnumGeter.COLUMNTYPE.MOULDNUMBER.GetHashCode().ToString()
|| o.COLUMNTYPE == OpcEnumGeter.COLUMNTYPE.EQUIPSCANFLAG.GetHashCode().ToString()
)
)
.ToList<ParameterConfig>();
@ -494,7 +544,7 @@ namespace OpcServerHost.Init
#region 获取参数
ParameterConfig paraConfig = GetResultParameterConfig(parameter);
var result = new object();
try
@ -506,11 +556,11 @@ namespace OpcServerHost.Init
}
catch (Exception ex)
{
Console.WriteLine(paraConfig.COLUMNCODE + ":" + ex.Message);
WriteLog.Write(paraConfig.COLUMNCODE + ":" + ex.Message, currentPC.MACHINECODDE);
}
if (result != null)
{
paraConfig.PARAVALUE = result;
@ -530,7 +580,7 @@ namespace OpcServerHost.Init
}
#endregion
#region 处理已经读取完加工参数标记
//目前主要针对浇注设备
@ -566,9 +616,9 @@ namespace OpcServerHost.Init
#endregion
#region 将参数信息传递到web服务中
client.SubmitParameters(JsonConvertHelper.GetSerializes(resultList));
#endregion
@ -638,6 +688,122 @@ namespace OpcServerHost.Init
#endregion
#region 捕获条码扫描完成标记
if (currentPC.COLUMNCODE == "PLC_Scan_Ok_t")
{
if (currentPC.COLUMNTYPE == OpcEnumGeter.COLUMNTYPE.EQUIPSCANFLAG.GetHashCode().ToString())
{
#region 提示扫描条码完成
if (itemValue == null)
{
continue;
}
//如果完成标记表示更新了加工参数
//获取所有的加工参数
if ((Boolean)itemValue == true)
{
Thread.Sleep(1000);
Console.WriteLine(System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + " Catch BarcodeScan Flag :" + currentPC.MACHINECODDE + ":" + currentPC.MOLDNUMBER + ":" + currentPC.COLUMNCODE);
WriteLog.Write(System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + " Catch BarcodeScan Flag :" + currentPC.COLUMNCODE, currentPC.MACHINECODDE);
#region 获取条码信息
bool ishaveBarcode = true;
//获取该设备模块下的条码配置信息
List<ParameterConfig> barCodeParaList = paraConfigList
.Where(o =>
o.MACHINECODDE == machCode
&& o.MOLDNUMBER == moldNumber
&& o.COLUMNTYPE == OpcEnumGeter.COLUMNTYPE.BARCODE.GetHashCode().ToString()
)
.OrderBy(o => o.COLUMNCODE)
.ToList<ParameterConfig>();
//确定组信息
if (barCodeParaList.Count > 0)
{
opcplcConnection.KepGroup = opcplcConnection.KepGroups.GetOPCGroup(currentPC.MACHINECODDE + ":" + currentPC.MOLDNUMBER.ToString() + ":BarCodePara");
opcplcConnection.KepItems = opcplcConnection.KepGroup.OPCItems;
}
//获取的信息集合
List<ParameterConfig> getParaList = new List<ParameterConfig>();
//循环获取条码信息
foreach (var parameter in barCodeParaList)
{
try
{
string item = parameter.MACHINECODDE + ":" + parameter.MOLDNUMBER + ":" + parameter.COLUMNCODE;
var result = opcplcConnection.ReadtagValue(opcItemDict[item]);
if (result != null)
{
parameter.PARAVALUE = result;
}
Console.WriteLine(System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "Get Barcode " + " " + parameter.MACHINECODDE + ":" + parameter.MOLDNUMBER + ":" + parameter.COLUMNCODE + " " + ((result == null) ? " " : result.ToString()), currentPC.MACHINECODDE);
WriteLog.Write(System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "Get Barcode " + ":" + parameter.COLUMNCODE + " " + ((result == null) ? " " : result.ToString()), currentPC.MACHINECODDE);
getParaList.Add(parameter);
}
catch (Exception ex)
{
Console.WriteLine("获取" + parameter.COLUMNCODE + "值异常");
WriteLog.Write(System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + ex.Message, currentPC.MACHINECODDE);
continue;
}
}
if (ishaveBarcode == false)
{
Console.WriteLine("Fail to get barcode!");
WriteLog.Write(System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "Fail to get barcode!", currentPC.MACHINECODDE);
continue;
}
#endregion
#region 在双攻通信的条件下将扫描的条码信息传送到工控机上
try
{
//定义参数信息
ChatEventArgs e = new ChatEventArgs();
//设备编号
e.MachineCode = machCode;
//传输参数的类别
e.MessageType = OpcEnumGeter.MESSAGETYPE.PRODUCTCODE.GetHashCode().ToString();
//传输参数的内容
e.MessageContent = JsonConvertHelper.GetSerializes(getParaList);
OpcService opcService = new OpcService();
opcService.ReturnProductCodeToMachine(e);
}
catch (Exception ex)
{
Console.WriteLine(System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "Fail to connect to " + currentPC.MACHINECODDE + "!");
WriteLog.Write(System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "Fail to connect to " + currentPC.MACHINECODDE + "!", currentPC.MACHINECODDE);
}
#endregion
}
#endregion
}
}
#endregion
#region 中断
if (currentPC.COLUMNTYPE == OpcEnumGeter.COLUMNTYPE.INTERRUPT.GetHashCode().ToString())

10
ServicesCenter/WindowsServices/OpcService/app.config

@ -4,14 +4,14 @@
<add key="ServerAddressIP" value="net.tcp://127.0.0.1:4444/OpcService"/>
<!--<add key="OPCServerIP" value="10.111.226.150" />-->
<add key="OPCServerIP" value="127.0.0.1" />
<add key="OPCServerName" value="Kepware.KEPServerEX.V5" />
<!--<add key="OPCServerName" value="kepware.KEPServerEX.V5" />-->
<add key="PRODUCELINE" value="VW331_IP" />
<add key="OPCServerName" value="Kepware.KEPServerEX.V6" />
<!--<add key="OPCServerName" value="Kepware.KEPServerEX.V5" />-->
<add key="PRODUCELINE" value="CFAACD" />
</appSettings>
<connectionStrings>
<!--<add name="maindb" connectionString="Data Source=10.111.144.98;Initial Catalog=ADIENT_CD_MES;User Id=CDMESADM;Password=CDmes123;" providerName="System.Data.SqlClient"/>-->
<add name="maindb" connectionString="Data Source=.;Initial Catalog=ADIENT_CD_MES;Persist Security Info=True;User ID=sa;Password=qm;" providerName="System.Data.SqlClient"/>
<add name="maindb" connectionString="Data Source=10.111.144.98;Initial Catalog=ADIENT_CD_MES;User Id=CDMESADM;Password=CDmes123;" providerName="System.Data.SqlClient"/>
<!--<add name="maindb" connectionString="Data Source=.;Initial Catalog=ADIENT_CD_MES;Persist Security Info=True;User ID=sa;Password=qm;" providerName="System.Data.SqlClient"/>-->
</connectionStrings>
<system.serviceModel>
<client>

Loading…
Cancel
Save