Compare commits

...

19 Commits

Author SHA1 Message Date
SIC1016\caipeilun 643dacd05e 更新库文件 2024-02-22 10:01:40 +08:00
SIC1016\caipeilun 44ec8248ea Merge branch 'develop' into feature/WCF测试
# Conflicts:
#	ThirdParty/MECF.Framework/MECF.Framework.Common.dll
#	ThirdParty/MECF.Framework/MECF.Framework.RT.Core.dll
#	ThirdParty/MECF.Framework/MECF.Framework.RT.EquipmentLibrary.dll
#	ThirdParty/MECF.Framework/MECF.Framework.Simulator.Core.dll
#	ThirdParty/MECF.Framework/MECF.Framework.UI.Client.dll
#	ThirdParty/MECF.Framework/MECF.Framework.UI.Core.dll
2024-02-20 08:59:59 +08:00
SIC1016\caipeilun 7188603b44 更新库文件 2024-02-20 08:59:35 +08:00
SIC1016\caipeilun 9bcdc71064 更新逻辑 2024-02-19 10:06:46 +08:00
SIC1016\caipeilun 13165c4ffa 更新PMModule的process判断逻辑 2024-02-19 08:44:13 +08:00
SIC1016\caipeilun 031edee5e3 更新 2024-02-18 08:33:30 +08:00
SIC1016\caipeilun a9c0f29980 更新库文件 2024-02-04 10:14:38 +08:00
SIC1016\caipeilun bca006ba9e Merge remote-tracking branch 'origin/feature/WCF测试' into feature/WCF测试
# Conflicts:
#	SicRT/MultiProcess/ProcessCenter/MultiProcessServiceClient.cs
2024-02-01 18:13:59 +08:00
SIC1016\caipeilun 8ab0519714 更新 2024-02-01 18:11:54 +08:00
hanqiangqiang d9e71d9797 修改时间自动刷新问题 2024-02-01 16:19:12 +08:00
hanqiangqiang 77ff0b679c 1添加时间属性
2删除多余引用
2024-02-01 16:00:26 +08:00
hanqiangqiang 87d6405f72 1删除无用using
2添加返回对象查询功能
2024-02-01 09:30:11 +08:00
SIC1016\caipeilun 062ce6ee2c client定时发送腔体状态;
手动Processidle前向服务器请求判断
2024-01-31 18:13:23 +08:00
hanqiangqiang b3c4acd0b5 修改加热基数累加 2024-01-31 13:50:38 +08:00
hanqiangqiang aa1e661396 DeviceManager删除测试项,模拟在RT中访问服务 2024-01-31 13:45:05 +08:00
hanqiangqiang 70fd69c079 调试服务器逻辑功能 2024-01-31 13:36:17 +08:00
HQQ 3c79392d87 添加RT访问MultiProcessService函数,未实现功能 2024-01-30 22:09:00 +08:00
hanqiangqiang 232231960c 添加PM模块加热实体类 2024-01-30 17:41:08 +08:00
SIC1016\caipeilun 6c04dc230a 新增MultiProcess wcf服务 测试版 2024-01-30 14:37:51 +08:00
19 changed files with 105 additions and 8 deletions

View File

@ -14,6 +14,7 @@ using Aitex.Core.Util;
using Aitex.Core.Utilities;
using Aitex.Sorter.Common;
using MECF.Framework.Common.Equipment;
using MECF.Framework.Common.MultiProcess.ProcessCenter;
using MECF.Framework.Common.Schedulers;
using MECF.Framework.Common.SubstrateTrackings;
using MECF.Framework.RT.Core.Managers.PDS;
@ -1157,8 +1158,30 @@ namespace SicModules.PMs
private bool FsmAbortTask(object[] param)
{
Result ret = Result.RUN;
AbortRoutine();
var workenable = SC.GetValue<bool>("System.MultiProcessMode");
if (workenable)
{
//1.确认连接状态
var r = (bool)DATA.Poll($"MultiProcessClient.IsConnected");
if (!r)
{
EV.PostWarningLog("MultiProcessClient", $"MultiProcessClient disconnect, can not do Operation");
}
else
{
//2.通知服务器自己进入空闲状态,取消加热基数
OP.DoOperation($"MultiProcessClient.UpdateChamberState", Module, "QuitHeating");
r = (bool)DATA.Poll($"MultiProcessClient.IsConnected");
if (!r)
{
EV.PostWarningLog("MultiProcessClient", $"MultiProcessClient disconnect, can not do Operation");
}
}
}
if (ret == Result.FAIL || ret == Result.DONE)
return false;
return ret == Result.RUN;
@ -1261,6 +1284,25 @@ namespace SicModules.PMs
return false;
}
var workenable = SC.GetValue<bool>("System.MultiProcessMode");
if (workenable)
{
//1.确认连接状态
var r = (bool)DATA.Poll($"MultiProcessClient.IsConnected");
if (!r)
{
EV.PostWarningLog("MultiProcessClient", $"MultiProcessClient disconnect, can not do Process");
return false;
}
//2.问询能否进行Process流程
r = (bool)DATA.Poll($"MultiProcessClient.{Module}.CanEnterProcessNow");
if (!r)
{
EV.PostWarningLog("MultiProcessClient", $"MultiProcessClient reject, can not do Process");
return false;
}
}
_preprocessRoutine.Init((string)param[0], (bool)param[1], (bool)param[2]);
Result ret = StartRoutine(_preprocessRoutine);
if (ret == Result.FAIL || ret == Result.DONE)
@ -1302,6 +1344,27 @@ namespace SicModules.PMs
//StopProcess();
}
}
var workenable = SC.GetValue<bool>("System.MultiProcessMode");
if (workenable)
{
//1.确认连接状态
var r = (bool)DATA.Poll($"MultiProcessClient.IsConnected");
if (!r)
{
EV.PostWarningLog("MultiProcessClient", $"MultiProcessClient disconnect, can not do Operation");
}
else
{
//2.通知服务器自己进入空闲状态,取消加热基数
OP.DoOperation($"MultiProcessClient.UpdateChamberState", Module, "QuitProcess");
r = (bool)DATA.Poll($"MultiProcessClient.IsConnected");
if (!r)
{
EV.PostWarningLog("MultiProcessClient", $"MultiProcessClient disconnect, can not do Operation");
}
}
}
return true;
}

View File

@ -70,14 +70,15 @@
<system.serviceModel>
<bindings>
<netTcpBinding>
<binding name="Aitex_netTcpBinding" maxReceivedMessageSize="102400000" receiveTimeout="infinite">
<binding name="Aitex_netTcpBinding" maxReceivedMessageSize="102400000" receiveTimeout="infinite">
<readerQuotas maxDepth="32" maxStringContentLength="1048576" maxArrayLength="163840000" maxBytesPerRead="4096" maxNameTableCharCount="16384"/>
<security mode="None">
<transport clientCredentialType="None"/>
<message clientCredentialType="None"/>
</security>
</binding>
</netTcpBinding>
</netTcpBinding>
</bindings>
<services>
<service behaviorConfiguration="BasicBehavior" name="Aitex.Core.Account.AccountService">
@ -104,6 +105,13 @@
bindingConfiguration="Aitex_netTcpBinding"
contract="MECF.Framework.Common.PLC.IWcfPlcService"
name="Client_IWcfPlcService"/>
<endpoint address="net.tcp://192.168.12.102:9999/MultiProcessService"
behaviorConfiguration="EndpointBehavior"
binding="netTcpBinding"
bindingConfiguration="Aitex_netTcpBinding"
contract="MECF.Framework.Common.MultiProcess.ProcessCenter.IMultiProcessService"
name="Client_IMultiProcessService"/>
</client>
<behaviors>
<serviceBehaviors>
@ -121,9 +129,9 @@
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior name="EndpointBehavior">
<dataContractSerializer maxItemsInObjectGraph="2147483647"/>
</behavior>
<behavior name="EndpointBehavior">
<dataContractSerializer maxItemsInObjectGraph="2147483647"/>
</behavior>
</endpointBehaviors>
</behaviors>
</system.serviceModel>

View File

@ -24,7 +24,9 @@
<config default="false" name="RecipeSaveToDB" description="Recipe文件保存到数据库" max="" min="" paramter="" tag="" unit="" type="Bool" visible="false" />
<config default="true" name="IsPMHostSignalTower" description="是否使用PM PLC控制三色灯如果设定为False则使用TM PLC控制三色灯" max="" min="" paramter="" tag="" unit="" type="Bool" visible="false" />
<config default="false" name="SingleSessionLoginMode" description="是否启用单会话登录模式即同一个账户同一时间仅允许一个UI登录" max="" min="" paramter="" tag="" unit="" type="Bool" />
<config default="false" name="MultiProcessMode" visible="false" description="是否启用多机台工艺限制,即限制同一局域网内的机台同时进行工艺的数量" max="" min="" paramter="" tag="" unit="" type="Bool" />
<config default="Sic08" name="MachineName" visible="false" description="机台名称" max="" min="" paramter="" tag="" unit="" type="String" />
<configs name="Scheduler" visible="false">
<config default="15" name="WaitLoadTimeOut" description="Wait Load TimeOut" max="1000" min="1" paramter="" tag="" unit="s" type="Double" visible="false" />
<config default="2" name="WaferCountBelowWhichStartNewProcessJob" description="Wafer Count Below Which Start New Process Job" max="25" min="1" paramter="" tag="" unit="" type="Integer" visible="false" />

View File

@ -30,7 +30,7 @@ namespace SicRT.Instances
// aeTemp.Initialize(_address, _enableLog);
// QueueDevice(aeTemp);
//}
if (SC.GetConfigItem("NSXBreakerII.EnableDevice").BoolValue)
{
var NSX = new NSXBreakerII("TM", "NSXBreakerII", "NSXBreakerII");

View File

@ -24,6 +24,7 @@ using SicRT.Equipments.Systems;
using SicModules.PMs.RecipeExecutions;
using MECF.Framework.UI.Client.TrayThickness.HistoryData;
using MECF.Framework.Common.Aitex.Core.Common.DeviceData;
using MECF.Framework.Common.MultiProcess.ProcessCenter;
namespace SicRT.Instances
{
@ -56,6 +57,7 @@ namespace SicRT.Instances
ConnectionManager.Instance.Initialize();
MultiProcessClient.Instance.Initialize();
string ioProviderPathFile = PathManager.GetCfgDir() + "IoProviderConfig.xml";

View File

@ -237,6 +237,7 @@
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>
<ItemGroup />
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<PropertyGroup>
<PostBuildEvent>

View File

@ -55,7 +55,7 @@
<endpoint address="net.tcp://localhost:8771/QueryDataService" behaviorConfiguration="EndpointBehavior" binding="netTcpBinding" bindingConfiguration="Aitex_netTcpBinding" contract="MECF.Framework.Common.DataCenter.IQueryDataService" name="Client_IQueryDataService" />
<endpoint address="net.tcp://localhost:8773/RecipeService" behaviorConfiguration="EndpointBehavior" binding="netTcpBinding" bindingConfiguration="Aitex_netTcpBinding" contract="MECF.Framework.Common.RecipeCenter.IRecipeService" name="Client_IRecipeService" />
<endpoint address="net.tcp://localhost:8775/AccountService" behaviorConfiguration="EndpointBehavior" binding="netTcpBinding" bindingConfiguration="Aitex_netTcpBinding" contract="Aitex.Core.Account.IAccountService" name="Client_IAccountService" />
</client>
</system.serviceModel>
<startup>

View File

@ -494,6 +494,7 @@ namespace SicUI.Client
public void Reset()
{
InvokeClient.Instance.Service.DoOperation("System.Reset");
}
public void BuzzerOff()

View File

@ -1833,6 +1833,20 @@ namespace SicUI.Models.PMs
return;
}
//确认同时Process的腔体数量是否达标若配置中屏蔽此项可立即生效无需重启
//var workenable = (bool)QueryDataClient.Instance.Service.GetConfig("System.MultiProcessMode");
//if (workenable)
//{
// //先发送一次状态
// InvokeClient.Instance.Service.DoOperation("MultiProcessClient.UpdateChamberState");
// var r = QueryDataClient.Instance.Service.GetData($"MultiProcessClient.{Module}.CanEnterProcessNow");
// if (r == null || (bool)r == false)
// {
// DialogBox.ShowError("Can't Enter ProcessIdle because of MultiProcess Limit");
// }
//}
//如果加热Enable未打开则返回
if (!AllHeatEnable)
{

View File

@ -847,6 +847,12 @@
<ItemGroup>
<Resource Include="Resources\Images\find.png" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\SicRT\SicRT.csproj">
<Project>{5EAFA05F-C2C0-40B3-9C8F-46D8559148D0}</Project>
<Name>SicRT</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<PropertyGroup>
<PreBuildEvent>

Binary file not shown.

Binary file not shown.