Merge branch '多片机/multiplate-develop' of http://118.31.5.210:65000/Sic-Software/Sic08 into 多片机/multiplate-develop

# Conflicts:
#	Modules/Mainframe/gitversion.json
#	SicRT/gitversion.json
#	SicSimulator/gitversion.json
#	SicUI/gitversion.json
#	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
#	ThirdParty/MECF.Framework/Sicentury.Core.dll
#	ThirdParty/MECF.Framework/Sicentury.Localization.dll
#	ThirdParty/MECF.Framework/zh/Sicentury.Localization.resources.dll
This commit is contained in:
SIC1016\caipeilun 2024-07-02 10:27:44 +08:00
commit e0bf983e50
38 changed files with 386 additions and 267 deletions

View File

@ -57,7 +57,7 @@
<IoValve id="V32" display="ArSupply" schematicId="V32" unit="" isNc="true" isDefaultOpen="false" diOpen="DI_ArSupplyFB(V32)" doOpen="DO_ArSupply(V32)" diCloseSensor="" diOpenSensor="" />
<IoValve id="V33" display="H2ArSwitch" schematicId="V33" unit="" isNc="true" isDefaultOpen="false" diOpen="DI_SHH2/ArSwitchFB(V33)" doOpen="DO_SHH2/ArSwitch(V33)" diCloseSensor="" diOpenSensor="" />
<IoValve id="V33s" display="H2ArSwitch" schematicId="V33s" unit="" isNc="false" isDefaultOpen="true" diOpen="DI_SHH2/ArSwitchFB(V33)" doOpen="DO_SHH2/ArSwitch(V33)" diCloseSensor="" diOpenSensor="" />
<IoValve id="V35" display="H2ArLine1" schematicId="V35" unit="" isNc="true" isDefaultOpen="false" diOpen="DI_H2ArLine1FB(V35)" doOpen="DO_H2ArLine1(V35)" diCloseSensor="" diOpenSensor="" />
<IoValve id="V35" display="H2ArLine1" schematicId="V35" unit="" isNc="false" isDefaultOpen="true" diOpen="DI_H2ArLine1FB(V35)" doOpen="DO_H2ArLine1(V35)" diCloseSensor="" diOpenSensor="" />
<IoValve id="V36" display="H2ArLine2" schematicId="V36" unit="" isNc="false" isDefaultOpen="true" diOpen="DI_H2ArLine2FB(V36)" doOpen="DO_H2ArLine2(V36)" diCloseSensor="" diOpenSensor="" />
<IoValve id="V37" display="N2.Switch" schematicId="V37" unit="" isNc="false" isDefaultOpen="true" diOpen="DI_N2SwitchFB(V37)" doOpen="DO_N2Switch(V37)" diCloseSensor="" diOpenSensor="" />
<IoValve id="V37s" display="N2.Switch" schematicId="V37s" unit="" isNc="true" isDefaultOpen="false" diOpen="DI_N2SwitchFB(V37)" doOpen="DO_N2Switch(V37)" diCloseSensor="" diOpenSensor="" />
@ -144,9 +144,7 @@
<IoMfc3 id="Mfc14" display="Mfc14" schematicId="Mfc14" unit="sccm" aiActMode="AI_M14ActMode" aoSetMode="AO_M14CtrlMode" aiFlow="AI_M14" aoFlow="AO_M14" scBasePath="PM.PM1.MFC" aioType="float" formatString="F1" diAlarm="DI_MFC14Offline" AlarmText="Alarm114 MFC14 Offline[DI-364]" />
<IoMfc3 id="Mfc15" display="Mfc15" schematicId="Mfc15" unit="sccm" aiActMode="AI_M15ActMode" aoSetMode="AO_M15CtrlMode" aiFlow="AI_M15" aoFlow="AO_M15" scBasePath="PM.PM1.MFC" aioType="float" formatString="F1" diAlarm="DI_MFC15Offline" AlarmText="Alarm115 MFC15 Offline[DI-365]" />
<IoMfc3 id="Mfc16" display="Mfc16" schematicId="Mfc16" unit="sccm" aiActMode="AI_M16ActMode" aoSetMode="AO_M16CtrlMode" aiFlow="AI_M16" aoFlow="AO_M16" scBasePath="PM.PM1.MFC" aioType="float" formatString="F1" diAlarm="DI_MFC16Offline" AlarmText="Alarm116 MFC16 Offline[DI-366]" />
<IoMfc3 id="Mfc17" display="Mfc17" schematicId="Mfc17" unit="sccm" aiActMode="AI_M17ActMode" aoSetMode="AO_M17CtrlMode" aiFlow="AI_M17" aoFlow="AO_M17" scBasePath="PM.PM1.MFC" aioType="float" formatString="F1" diAlarm="DI_MFC17Offline" AlarmText="Alarm117 MFC17 Offline[DI-367]" />
<IoMfc3 id="Mfc19" display="Mfc19" schematicId="Mfc19" unit="sccm" aiActMode="AI_M19ActMode" aoSetMode="AO_M19CtrlMode" aiFlow="AI_M19" aoFlow="AO_M19" scBasePath="PM.PM1.MFC" aioType="float" formatString="F1" diAlarm="DI_MFC19Offline" AlarmText="Alarm119 MFC19 Offline[DI-369]" />
<IoMfc3 id="Mfc20" display="Mfc20" schematicId="Mfc20" unit="sccm" aiActMode="AI_M20ActMode" aoSetMode="AO_M20CtrlMode" aiFlow="AI_M20" aoFlow="AO_M20" scBasePath="PM.PM1.MFC" aioType="float" formatString="F1" diAlarm="DI_MFC20Offline" AlarmText="Alarm120 MFC20 Offline[DI-370]" />
<IoMfc3 id="Mfc22" display="Mfc22" schematicId="Mfc22" unit="sccm" aiActMode="AI_M22ActMode" aoSetMode="AO_M22CtrlMode" aiFlow="AI_M22" aoFlow="AO_M22" scBasePath="PM.PM1.MFC" aioType="float" formatString="F1" diAlarm="DI_MFC22Offline" AlarmText="Alarm122 MFC22 Offline[DI-372]" />
@ -163,14 +161,12 @@
<IoMfc3 id="Mfc36" display="Mfc36" schematicId="Mfc36" unit="sccm" aiActMode="AI_M36ActMode" aoSetMode="AO_M36CtrlMode" aiFlow="AI_M36" aoFlow="AO_M36" scBasePath="PM.PM1.MFC" aioType="float" formatString="F1" diAlarm="DI_MFC36Offline" AlarmText="Alarm136 MFC36 Offline[DI-386]" />
<IoMfc3 id="Mfc37" display="Mfc37" schematicId="Mfc37" unit="sccm" aiActMode="AI_M37ActMode" aoSetMode="AO_M37CtrlMode" aiFlow="AI_M37" aoFlow="AO_M37" scBasePath="PM.PM1.MFC" aioType="float" formatString="F1" diAlarm="DI_MFC37Offline" AlarmText="Alarm137 MFC37 Offline[DI-387]" />
<IoMfc3 id="Mfc38" display="Mfc38" schematicId="Mfc38" unit="sccm" aiActMode="AI_M38ActMode" aoSetMode="AO_M38CtrlMode" aiFlow="AI_M38" aoFlow="AO_M38" scBasePath="PM.PM1.MFC" aioType="float" formatString="F1" diAlarm="DI_MFC38Offline" AlarmText="Alarm138 MFC38 Offline[DI-388]" />
<IoMfc3 id="Mfc40" display="Mfc40" schematicId="Mfc40" unit="sccm" aiActMode="AI_M40ActMode" aoSetMode="AO_M40CtrlMode" aiFlow="AI_M40" aoFlow="AO_M40" scBasePath="PM.PM1.MFC" aioType="float" formatString="F1" diAlarm="DI_MFC40Offline" AlarmText="Alarm140 MFC40 Offline[DI-390]" />
<IoMfc3 id="Mfc41" display="Mfc41" schematicId="Mfc41" unit="sccm" aiActMode="AI_M41ActMode" aoSetMode="AO_M41CtrlMode" aiFlow="AI_M41" aoFlow="AO_M41" scBasePath="PM.PM1.MFC" aioType="float" formatString="F1" diAlarm="DI_MFC41Offline" AlarmText="Alarm141 MFC41 Offline[DI-391]" />
<IoMfc3 id="Mfc42" display="Mfc42" schematicId="Mfc42" unit="sccm" aiActMode="AI_M42ActMode" aoSetMode="AO_M42CtrlMode" aiFlow="AI_M42" aoFlow="AO_M42" scBasePath="PM.PM1.MFC" aioType="float" formatString="F1" diAlarm="DI_MFC42Offline" AlarmText="Alarm142 MFC42 Offline[DI-392]" />
<IoMfc3 id="Mfc43" display="Mfc43" schematicId="Mfc43" unit="sccm" aiActMode="AI_M43ActMode" aoSetMode="AO_M43CtrlMode" aiFlow="AI_M43" aoFlow="AO_M43" scBasePath="PM.PM1.MFC" aioType="float" formatString="F1" diAlarm="DI_MFC43Offline" AlarmText="Alarm143 MFC43 Offline[DI-393]" />
<IoMfc3 id="Mfc44" display="Mfc44" schematicId="Mfc44" unit="sccm" aiActMode="AI_M44ActMode" aoSetMode="AO_M44CtrlMode" aiFlow="AI_M44" aoFlow="AO_M44" scBasePath="PM.PM1.MFC" aioType="float" formatString="F1" diAlarm="DI_MFC44Offline" AlarmText="Alarm144 MFC44 Offline[DI-394]" />
<IoMfc3 id="Mfc45" display="Mfc45" schematicId="Mfc45" unit="sccm" aiActMode="AI_M45ActMode" aoSetMode="AO_M45CtrlMode" aiFlow="AI_M45" aoFlow="AO_M45" scBasePath="PM.PM1.MFC" aioType="float" formatString="F1" diAlarm="DI_MFC45Offline" AlarmText="Alarm145 MFC45 Offline[DI-395]" />
</IoMfcs>
<IoPressureMeters classType="Aitex.Core.RT.Device.Devices.IoPressure" assembly="MECF.Framework.RT.EquipmentLibrary">
<IoPressureMeter id="Pressure1" display="PC1" schematicId="Pressure1" scBasePath="PM.{module}.PC" unit="mbar" aioType="float" aiOpenDegree="AI_PC1Valve" aiActMode="AI_PC1ActMode" aoSetMode="AO_PC1CtrlMode" aiValue="AI_PressCtrl1" aoValue="AO_PressCtrl1" formatString="0.0" diAlarm="DI_PC01Offline" AlarmText="Alarm141 PC1 Offline[DI-391]" />
@ -572,19 +568,24 @@
doGreen="DO_TowerGreen" doYellow="DO_TowerYellow" doRed="DO_TowerRed" doBuzzer="DO_Buzzer"
aoBuzzerBlinkFreq="AO_BuzzerBlinkFreqHz"/>
</IoSignalTowers>
<IoChamberMoveBodys classType="Aitex.Core.RT.Device.Devices.IoChamberMoveBody" assembly="MECF.Framework.RT.EquipmentLibrary">
<IoChamberMoveBody id="ChamberMoveBody" module="" display="ChamberMoveBody" schematicId="ChamberMoveBody" unit="" aioType="" diUpFaceback="DI_ChamMoveBodyUp" diDownFaceback="DI_ChamMoveBodyDown" diFront=" DI_ChamMoveBodyFront" diEndFaceback="DI_ChamMoveBodyEnd" doUpSetpoint="DO_ChamMoveBodyUp" doDownSetpoint="DO_ChamMoveBodyDown" doUpBrake="DO_ChamMoveBodyUpAirBrake" doForward="DO_ChamMoveBodyForward" doBackward="DO_ChamMoveBodyBackward" doForwardLatch="DO_ChamMoveBodyBrakerForward" doBackwardLatch="DO_ChamMoveBodyBrakerBackward" diForwardLatch="DI_ChamMoveBodyUpLatchFW" diBackwardLatch="DI_ChamMoveBodyEndLatchBW" diRemote="DI_ChamLidPushButtonLocal" diLock="DI_ManualLidUpPB" diUpDownEnable="DI_ChamMoveBodyUpDownEnableFB" doUpDownEnable="DO_ChamMoveBodyUpDownEnable" />
<IoChamberMoveBodys classType="Aitex.Core.RT.Device.Devices.IoChamberMoveBodySicMultiple" assembly="MECF.Framework.RT.EquipmentLibrary">
<IoChamberMoveBody id="ChamberMoveBody" module="" display="ChamberMoveBody" schematicId="ChamberMoveBody" unit="" aioType="" diUpFaceback="DI_ChamMoveBodyUp"
diDownFaceback="DI_ChamMoveBodyDown" diFront=" DI_ChamMoveBodyFront" diEndFaceback="DI_ChamMoveBodyEnd" doUpSetpoint="DO_ChamMoveBodyUp"
doDownSetpoint="DO_ChamMoveBodyDown" doUpBrake="DO_ChamMoveBodyUpAirBrake" doForward="DO_ChamMoveBodyForward" doBackward="DO_ChamMoveBodyBackward"
doForwardLatch="DO_ChamMoveBodyBrakerForward" doBackwardLatch="DO_ChamMoveBodyBrakerBackward" diForwardLatch="DI_ChamMoveBodyUpLatchFW"
diBackwardLatch="DI_ChamMoveBodyEndLatchBW" diRemote="DI_ChamLidPushButtonLocal" diLock="DI_ManualLidUpPB"
diUpDownEnable="DI_ChamMoveBodyUpDownEnableFB" doUpDownEnable="DO_ChamMoveBodyUpDownEnable" />
</IoChamberMoveBodys>
<IoGasConnectors classType="Aitex.Core.RT.Device.Devices.IoGasConnector" assembly="MECF.Framework.RT.EquipmentLibrary">
<IoGasConnector id="GasConnector" module="" display="GasConnector" schematicId="GasConnector" unit="" aioType="" diGasConnectorLoosen="DI_SHGasConnectorLoosen" diGasConnectorTighten="DI_SHGasConnectorTighten" doGasConnectorLoosen="DO_SHGasConnectorLoosen" doGasConnectorTighten="DO_SHGasConnectorTighten" />
</IoGasConnectors>
<IoLids classType="Aitex.Core.RT.Device.Devices.IoLid" assembly="MECF.Framework.RT.EquipmentLibrary">
<IoLid id="SHLid" module="" display="SH Lid" schematicId="SHLid" unit="" aioType="" diLoosenFaceback="DI_BottomChamLoosen" diTightenFaceback="DI_BottomChamTighten" diClosedFaceback="DI_BottomChamClosed" doLoosenSetpoint="DO_BottomChamLoosen" doTightenSetpoint="DO_BottomChamTighten" />
<IoLid id="MiddleLid" module="" display="Middle Lid" schematicId="MiddleLid" unit="" aioType="" />
</IoLids>
<IoLidSwings classType="Aitex.Core.RT.Device.Devices.IoLidSwing" assembly="MECF.Framework.RT.EquipmentLibrary">
<IoLidSwing id="SHLidSwing" module="" display="SH Lid Swing" schematicId="SHLidSwing" unit="" aioType="" diLidLockFaceback="DI_TOPChamSwingLock" diLidUnlockFaceback="DI_TOPChamSwingUnlock" doLidLockSetpoint="DO_TOPChamSwingLock" doLidUnlockSetpoint="DO_TOPChamSwingUnlock" />
<IoLidSwing id="MiddleLidSwing" module="" display="Middle Lid Swing" schematicId="MiddleLidSwing" unit="" aioType="" />
<IoLidSwing id="SHLidSwing" module="" display="SH Lid Swing" schematicId="SHLidSwing" unit="" aioType=""
diLidLockFaceback="DI_TOPChamSwingLock" diLidUnlockFaceback="DI_TOPChamSwingUnlock"
doLidLockSetpoint="DO_TOPChamSwingLock" doLidUnlockSetpoint="DO_TOPChamSwingUnlock" />
</IoLidSwings>
<IoConfinementRings classType="Aitex.Core.RT.Device.Devices.IoConfinementRing" assembly="MECF.Framework.RT.EquipmentLibrary">
<IoConfinementRing id="ConfinementRing" module="" display="ConfinementRing" schematicId="ConfinementRing" unit="" aioType=""

View File

@ -144,6 +144,7 @@
<DI_ITEM Index="209" Name="DI_DORRefillFB(V76)" BufferOffset="209" Addr="209" Description="" />
<DI_ITEM Index="210" Name="DI_GasBoxVentBypass(V25)" BufferOffset="210" Addr="210" Description="" />
<DI_ITEM Index="212" Name="DI_PumpBypassFB(V27)" BufferOffset="212" Addr="212" Description="" />
<DI_ITEM Index="214" Name="DI_CarryGasFinalFB(V97)" BufferOffset="214" Addr="214" Description="" />
<DI_ITEM Index="216" Name="DI_PSUEnableFB" BufferOffset="216" Addr="216" Description="" />
<DI_ITEM Index="217" Name="DI_InnerHeaterEnableFB" BufferOffset="217" Addr="217" Description="" />
<DI_ITEM Index="218" Name="DI_MiddleHeaterEnableFB" BufferOffset="218" Addr="218" Description="" />
@ -161,7 +162,6 @@
<DI_ITEM Index="234" Name="DI_SHLidSwingUnlockFB" BufferOffset="234" Addr="234" Description="" />
<DI_ITEM Index="235" Name="DI_ChamMoveBodyBrakerForwardFB" BufferOffset="235" Addr="235" Description="" />
<DI_ITEM Index="236" Name="DI_ChamMoveBodyBrakerBackwardFB" BufferOffset="236" Addr="236" Description="" />
<DI_ITEM Index="241" Name="DI_CarryGasFinalFB(V97)" BufferOffset="241" Addr="241" Description="" />
<DI_ITEM Index="243" Name="DI_MiddleLidLoosenFB" BufferOffset="243" Addr="243" Description="" />
<DI_ITEM Index="244" Name="DI_MiddleLidTightenFB" BufferOffset="244" Addr="244" Description="" />
<DI_ITEM Index="245" Name="DI_MiddleLidSwingLockFB" BufferOffset="245" Addr="245" Description="" />

View File

@ -199,7 +199,7 @@
<Limit di="PM1.DI_ChamMiddleFlow1" value="true" tip="" tip.zh-CN="" tip.en-US="DI-46"/>
<Limit di="PM1.DI_InletTotalFlowLowSW" value="false" tip="" tip.zh-CN="" tip.en-US="DI-27"/>
<Limit di="PM1.DI_InletTotalFlowHighSW" value="false" tip="" tip.zh-CN="" tip.en-US="DI-28"/>
<Limit di="PM1.DI_InletTotalTempHighSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-29"/>
<Limit di="PM1.DI_PMH2DetectorSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-30"/>
<Limit di="PM1.DI_GBHCLDetectorSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-31"/>
<Limit di="PM1.DI_ReactorHCLDetectorSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-52"/>
@ -277,7 +277,7 @@
<Limit di="PM1.DI_ChamMiddleFlow1" value="true" tip="" tip.zh-CN="" tip.en-US="DI-46"/>
<Limit di="PM1.DI_InletTotalFlowLowSW" value="false" tip="" tip.zh-CN="" tip.en-US="DI-27"/>
<Limit di="PM1.DI_InletTotalFlowHighSW" value="false" tip="" tip.zh-CN="" tip.en-US="DI-28"/>
<Limit di="PM1.DI_InletTotalTempHighSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-29"/>
<Limit di="PM1.DI_PMH2DetectorSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-30"/>
<Limit di="PM1.DI_GBHCLDetectorSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-31"/>
<Limit di="PM1.DI_ReactorHCLDetectorSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-52"/>
@ -355,7 +355,7 @@
<Limit di="PM1.DI_ChamMiddleFlow1" value="true" tip="" tip.zh-CN="" tip.en-US="DI-46"/>
<Limit di="PM1.DI_InletTotalFlowLowSW" value="false" tip="" tip.zh-CN="" tip.en-US="DI-27"/>
<Limit di="PM1.DI_InletTotalFlowHighSW" value="false" tip="" tip.zh-CN="" tip.en-US="DI-28"/>
<Limit di="PM1.DI_InletTotalTempHighSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-29"/>
<Limit di="PM1.DI_PMH2DetectorSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-30"/>
<Limit di="PM1.DI_GBHCLDetectorSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-31"/>
<Limit di="PM1.DI_ReactorHCLDetectorSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-52"/>
@ -433,7 +433,7 @@
<Limit di="PM1.DI_ChamMiddleFlow1" value="true" tip="" tip.zh-CN="" tip.en-US="DI-46"/>
<Limit di="PM1.DI_InletTotalFlowLowSW" value="false" tip="" tip.zh-CN="" tip.en-US="DI-27"/>
<Limit di="PM1.DI_InletTotalFlowHighSW" value="false" tip="" tip.zh-CN="" tip.en-US="DI-28"/>
<Limit di="PM1.DI_InletTotalTempHighSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-29"/>
<Limit di="PM1.DI_PMH2DetectorSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-30"/>
<Limit di="PM1.DI_GBHCLDetectorSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-31"/>
<Limit di="PM1.DI_ReactorHCLDetectorSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-52"/>
@ -511,7 +511,7 @@
<Limit di="PM1.DI_ChamMiddleFlow1" value="true" tip="" tip.zh-CN="" tip.en-US="DI-46"/>
<Limit di="PM1.DI_InletTotalFlowLowSW" value="false" tip="" tip.zh-CN="" tip.en-US="DI-27"/>
<Limit di="PM1.DI_InletTotalFlowHighSW" value="false" tip="" tip.zh-CN="" tip.en-US="DI-28"/>
<Limit di="PM1.DI_InletTotalTempHighSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-29"/>
<Limit di="PM1.DI_PMH2DetectorSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-30"/>
<Limit di="PM1.DI_GBHCLDetectorSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-31"/>
<Limit di="PM1.DI_ReactorHCLDetectorSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-52"/>
@ -589,7 +589,7 @@
<Limit di="PM1.DI_ChamMiddleFlow1" value="true" tip="" tip.zh-CN="" tip.en-US="DI-46"/>
<Limit di="PM1.DI_InletTotalFlowLowSW" value="false" tip="" tip.zh-CN="" tip.en-US="DI-27"/>
<Limit di="PM1.DI_InletTotalFlowHighSW" value="false" tip="" tip.zh-CN="" tip.en-US="DI-28"/>
<Limit di="PM1.DI_InletTotalTempHighSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-29"/>
<Limit di="PM1.DI_PMH2DetectorSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-30"/>
<Limit di="PM1.DI_GBHCLDetectorSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-31"/>
<Limit di="PM1.DI_ReactorHCLDetectorSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-52"/>
@ -667,7 +667,7 @@
<Limit di="PM1.DI_ChamMiddleFlow1" value="true" tip="" tip.zh-CN="" tip.en-US="DI-46"/>
<Limit di="PM1.DI_InletTotalFlowLowSW" value="false" tip="" tip.zh-CN="" tip.en-US="DI-27"/>
<Limit di="PM1.DI_InletTotalFlowHighSW" value="false" tip="" tip.zh-CN="" tip.en-US="DI-28"/>
<Limit di="PM1.DI_InletTotalTempHighSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-29"/>
<Limit di="PM1.DI_PMH2DetectorSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-30"/>
<Limit di="PM1.DI_GBHCLDetectorSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-31"/>
<Limit di="PM1.DI_ReactorHCLDetectorSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-52"/>
@ -745,7 +745,7 @@
<Limit di="PM1.DI_ChamMiddleFlow1" value="true" tip="" tip.zh-CN="" tip.en-US="DI-46"/>
<Limit di="PM1.DI_InletTotalFlowLowSW" value="false" tip="" tip.zh-CN="" tip.en-US="DI-27"/>
<Limit di="PM1.DI_InletTotalFlowHighSW" value="false" tip="" tip.zh-CN="" tip.en-US="DI-28"/>
<Limit di="PM1.DI_InletTotalTempHighSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-29"/>
<Limit di="PM1.DI_PMH2DetectorSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-30"/>
<Limit di="PM1.DI_GBHCLDetectorSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-31"/>
<Limit di="PM1.DI_ReactorHCLDetectorSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-52"/>
@ -826,7 +826,7 @@
<Limit di="PM1.DI_ChamMiddleFlow1" value="true" tip="" tip.zh-CN="" tip.en-US="DI-46"/>
<Limit di="PM1.DI_InletTotalFlowLowSW" value="false" tip="" tip.zh-CN="" tip.en-US="DI-27"/>
<Limit di="PM1.DI_InletTotalFlowHighSW" value="false" tip="" tip.zh-CN="" tip.en-US="DI-28"/>
<Limit di="PM1.DI_InletTotalTempHighSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-29"/>
<Limit di="PM1.DI_PMH2DetectorSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-30"/>
<Limit di="PM1.DI_GBHCLDetectorSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-31"/>
<Limit di="PM1.DI_ReactorHCLDetectorSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-52"/>
@ -983,7 +983,7 @@
<Limit di="PM1.DI_ChamMiddleFlow1" value="true" tip="" tip.zh-CN="" tip.en-US="DI-46"/>
<Limit di="PM1.DI_InletTotalFlowLowSW" value="false" tip="" tip.zh-CN="" tip.en-US="DI-27"/>
<Limit di="PM1.DI_InletTotalFlowHighSW" value="false" tip="" tip.zh-CN="" tip.en-US="DI-28"/>
<Limit di="PM1.DI_InletTotalTempHighSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-29"/>
<Limit di="PM1.DI_PMH2DetectorSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-30"/>
<Limit di="PM1.DI_GBHCLDetectorSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-31"/>
<Limit di="PM1.DI_ReactorHCLDetectorSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-52"/>
@ -1065,7 +1065,7 @@
<Limit di="PM1.DI_ChamMiddleFlow1" value="true" tip="" tip.zh-CN="" tip.en-US="DI-46"/>
<Limit di="PM1.DI_InletTotalFlowLowSW" value="false" tip="" tip.zh-CN="" tip.en-US="DI-27"/>
<Limit di="PM1.DI_InletTotalFlowHighSW" value="false" tip="" tip.zh-CN="" tip.en-US="DI-28"/>
<Limit di="PM1.DI_InletTotalTempHighSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-29"/>
<Limit di="PM1.DI_PMH2DetectorSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-30"/>
<Limit di="PM1.DI_GBHCLDetectorSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-31"/>
<Limit di="PM1.DI_ReactorHCLDetectorSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-52"/>
@ -1147,7 +1147,7 @@
<Limit di="PM1.DI_ChamMiddleFlow1" value="true" tip="" tip.zh-CN="" tip.en-US="DI-46"/>
<Limit di="PM1.DI_InletTotalFlowLowSW" value="false" tip="" tip.zh-CN="" tip.en-US="DI-27"/>
<Limit di="PM1.DI_InletTotalFlowHighSW" value="false" tip="" tip.zh-CN="" tip.en-US="DI-28"/>
<Limit di="PM1.DI_InletTotalTempHighSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-29"/>
<Limit di="PM1.DI_PMH2DetectorSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-30"/>
<Limit di="PM1.DI_GBHCLDetectorSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-31"/>
<Limit di="PM1.DI_ReactorHCLDetectorSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-52"/>
@ -1229,7 +1229,7 @@
<Limit di="PM1.DI_ChamMiddleFlow1" value="true" tip="" tip.zh-CN="" tip.en-US="DI-46"/>
<Limit di="PM1.DI_InletTotalFlowLowSW" value="false" tip="" tip.zh-CN="" tip.en-US="DI-27"/>
<Limit di="PM1.DI_InletTotalFlowHighSW" value="false" tip="" tip.zh-CN="" tip.en-US="DI-28"/>
<Limit di="PM1.DI_InletTotalTempHighSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-29"/>
<Limit di="PM1.DI_PMH2DetectorSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-30"/>
<Limit di="PM1.DI_GBHCLDetectorSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-31"/>
<Limit di="PM1.DI_ReactorHCLDetectorSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-52"/>
@ -1340,10 +1340,10 @@
<Action do="PM1.DO_GasBoxVentBypass(V25)" value="true" tip="" tip.zh-CN="" tip.en-US="DO-50">
<Limit di="PM1.DI_GasBoxVentPumpFB(V72)" value="false" tip="" tip.zh-CN="" tip.en-US="DI-205" ignoreReverse="true"/>
</Action>
<Action do="PM1.DO_GasBoxVentBypass(V25)" value="false" tip="" tip.zh-CN="" tip.en-US="DO-50">
<!--<Action do="PM1.DO_GasBoxVentBypass(V25)" value="false" tip="" tip.zh-CN="" tip.en-US="DO-50">
<Limit do="PM1.DO_ProcessRunning" value="true" tip="" tip.zh-CN="" tip.en-US="DO-174" ignoreReverse="true"/>
<Limit di="PM1.DI_GasBoxVentPumpFB(V72)" value="true" tip="" tip.zh-CN="" tip.en-US="DI-205" ignoreReverse="true"/>
</Action>
</Action>-->
<Action do="PM1.DO_MOVac(V73)" value="true" tip="" tip.zh-CN="" tip.en-US="DO-46">
<Limit di="PM1.DI_ChamLidClosed" value="true" tip="" tip.zh-CN="" tip.en-US="DI-0"/>
@ -1521,7 +1521,7 @@
<Limit di="PM1.DI_ChamMiddleFlow1" value="true" tip="" tip.zh-CN="" tip.en-US="DI-46"/>
<Limit di="PM1.DI_InletTotalFlowLowSW" value="false" tip="" tip.zh-CN="" tip.en-US="DI-27"/>
<Limit di="PM1.DI_InletTotalFlowHighSW" value="false" tip="" tip.zh-CN="" tip.en-US="DI-28"/>
<Limit di="PM1.DI_InletTotalTempHighSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-29"/>
<Limit di="PM1.DI_PMH2DetectorSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-30"/>
<Limit di="PM1.DI_GBHCLDetectorSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-31"/>
@ -1596,7 +1596,7 @@
<Limit di="PM1.DI_ChamMiddleFlow1" value="true" tip="" tip.zh-CN="" tip.en-US="DI-46"/>
<Limit di="PM1.DI_InletTotalFlowLowSW" value="false" tip="" tip.zh-CN="" tip.en-US="DI-27"/>
<Limit di="PM1.DI_InletTotalFlowHighSW" value="false" tip="" tip.zh-CN="" tip.en-US="DI-28"/>
<Limit di="PM1.DI_InletTotalTempHighSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-29"/>
<Limit di="PM1.DI_PMH2DetectorSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-30"/>
<Limit di="PM1.DI_GBHCLDetectorSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-31"/>
@ -1671,7 +1671,7 @@
<Limit di="PM1.DI_ChamMiddleFlow1" value="true" tip="" tip.zh-CN="" tip.en-US="DI-46"/>
<Limit di="PM1.DI_InletTotalFlowLowSW" value="false" tip="" tip.zh-CN="" tip.en-US="DI-27"/>
<Limit di="PM1.DI_InletTotalFlowHighSW" value="false" tip="" tip.zh-CN="" tip.en-US="DI-28"/>
<Limit di="PM1.DI_InletTotalTempHighSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-29"/>
<Limit di="PM1.DI_PMH2DetectorSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-30"/>
<Limit di="PM1.DI_GBHCLDetectorSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-31"/>
@ -1746,7 +1746,7 @@
<Limit di="PM1.DI_ChamMiddleFlow1" value="true" tip="" tip.zh-CN="" tip.en-US="DI-46"/>
<Limit di="PM1.DI_InletTotalFlowLowSW" value="false" tip="" tip.zh-CN="" tip.en-US="DI-27"/>
<Limit di="PM1.DI_InletTotalFlowHighSW" value="false" tip="" tip.zh-CN="" tip.en-US="DI-28"/>
<Limit di="PM1.DI_InletTotalTempHighSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-29"/>
<Limit di="PM1.DI_PMH2DetectorSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-30"/>
<Limit di="PM1.DI_GBHCLDetectorSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-31"/>
@ -1821,7 +1821,7 @@
<Limit di="PM1.DI_ChamMiddleFlow1" value="true" tip="" tip.zh-CN="" tip.en-US="DI-46"/>
<Limit di="PM1.DI_InletTotalFlowLowSW" value="false" tip="" tip.zh-CN="" tip.en-US="DI-27"/>
<Limit di="PM1.DI_InletTotalFlowHighSW" value="false" tip="" tip.zh-CN="" tip.en-US="DI-28"/>
<Limit di="PM1.DI_InletTotalTempHighSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-29"/>
<Limit di="PM1.DI_PMH2DetectorSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-30"/>
<Limit di="PM1.DI_GBHCLDetectorSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-31"/>
@ -1896,7 +1896,7 @@
<Limit di="PM1.DI_ChamMiddleFlow1" value="true" tip="" tip.zh-CN="" tip.en-US="DI-46"/>
<Limit di="PM1.DI_InletTotalFlowLowSW" value="false" tip="" tip.zh-CN="" tip.en-US="DI-27"/>
<Limit di="PM1.DI_InletTotalFlowHighSW" value="false" tip="" tip.zh-CN="" tip.en-US="DI-28"/>
<Limit di="PM1.DI_InletTotalTempHighSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-29"/>
<Limit di="PM1.DI_PMH2DetectorSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-30"/>
<Limit di="PM1.DI_GBHCLDetectorSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-31"/>
@ -1964,7 +1964,7 @@
<Limit di="PM1.DI_ScrubberIntlkSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-41"/>
<Limit di="PM1.DI_FacilityIntlkSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-42"/>
<Limit di="PM1.DI_ChamLidPushButtonLocal" value="true" tip="" tip.zh-CN="" tip.en-US="DI-49"/>
<Limit di="PM1.DI_ChamLidPushButtonLocal" value="false" tip="" tip.zh-CN="" tip.en-US="DI-49"/>
<Limit di="PM1.DI_GN2InletPressSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-55"/>
<Limit di="PM1.DI_EMOStatusSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-70"/>
@ -1987,7 +1987,7 @@
<Limit di="PM1.DI_ScrubberIntlkSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-41"/>
<Limit di="PM1.DI_FacilityIntlkSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-42"/>
<Limit di="PM1.DI_ChamLidPushButtonLocal" value="true" tip="" tip.zh-CN="" tip.en-US="DI-49"/>
<Limit di="PM1.DI_ChamLidPushButtonLocal" value="false" tip="" tip.zh-CN="" tip.en-US="DI-49"/>
<Limit di="PM1.DI_GN2InletPressSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-55"/>
<Limit di="PM1.DI_EMOStatusSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-70"/>
@ -2030,7 +2030,7 @@
<Limit di="PM1.DI_ScrubberIntlkSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-41"/>
<Limit di="PM1.DI_FacilityIntlkSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-42"/>
<Limit di="PM1.DI_ChamLidPushButtonLocal" value="true" tip="" tip.zh-CN="" tip.en-US="DI-49"/>
<Limit di="PM1.DI_ChamLidPushButtonLocal" value="false" tip="" tip.zh-CN="" tip.en-US="DI-49"/>
<Limit di="PM1.DI_GN2InletPressSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-55"/>
<Limit di="PM1.DI_EMOStatusSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-70"/>
@ -2052,7 +2052,7 @@
<Limit di="PM1.DI_ScrubberIntlkSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-41"/>
<Limit di="PM1.DI_FacilityIntlkSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-42"/>
<Limit di="PM1.DI_ChamLidPushButtonLocal" value="true" tip="" tip.zh-CN="" tip.en-US="DI-49"/>
<Limit di="PM1.DI_ChamLidPushButtonLocal" value="false" tip="" tip.zh-CN="" tip.en-US="DI-49"/>
<Limit di="PM1.DI_GN2InletPressSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-55"/>
<Limit di="PM1.DI_EMOStatusSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-70"/>
@ -2141,7 +2141,7 @@
<Limit di="PM1.DI_ScrubberIntlkSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-41"/>
<Limit di="PM1.DI_FacilityIntlkSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-42"/>
<Limit di="PM1.DI_ChamLidPushButtonLocal" value="true" tip="" tip.zh-CN="" tip.en-US="DI-49"/>
<Limit di="PM1.DI_ChamLidPushButtonLocal" value="false" tip="" tip.zh-CN="" tip.en-US="DI-49"/>
<Limit di="PM1.DI_GN2InletPressSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-55"/>
<Limit di="PM1.DI_EMOStatusSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-70"/>
@ -2806,7 +2806,7 @@
<Limit di="PM1.DI_ChamMiddleFlow1" value="true" tip="" tip.zh-CN="" tip.en-US="DI-46"/>
<Limit di="PM1.DI_InletTotalFlowLowSW" value="false" tip="" tip.zh-CN="" tip.en-US="DI-27"/>
<Limit di="PM1.DI_InletTotalFlowHighSW" value="false" tip="" tip.zh-CN="" tip.en-US="DI-28"/>
<Limit di="PM1.DI_InletTotalTempHighSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-29"/>
<Limit di="PM1.DI_PMH2DetectorSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-30"/>
<Limit di="PM1.DI_GBHCLDetectorSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-31"/>
<Limit di="PM1.DI_ReactorHCLDetectorSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-52"/>
@ -2940,7 +2940,7 @@
<Limit di="PM1.DI_ChamMiddleFlow1" value="true" tip="" tip.zh-CN="" tip.en-US="DI-46"/>
<Limit di="PM1.DI_InletTotalFlowLowSW" value="false" tip="" tip.zh-CN="" tip.en-US="DI-27"/>
<Limit di="PM1.DI_InletTotalFlowHighSW" value="false" tip="" tip.zh-CN="" tip.en-US="DI-28"/>
<Limit di="PM1.DI_InletTotalTempHighSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-29"/>
<Limit di="PM1.DI_PMH2DetectorSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-30"/>
<Limit di="PM1.DI_GBHCLDetectorSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-31"/>
<Limit di="PM1.DI_ReactorHCLDetectorSW" value="true" tip="" tip.zh-CN="" tip.en-US="DI-52"/>

View File

@ -117,9 +117,7 @@
<IoMfc3 id="Mfc14" display="Mfc14" schematicId="Mfc14" unit="sccm" aiActMode="AI_M14ActMode" aoSetMode="AO_M14CtrlMode" aiFlow="AI_M14" aoFlow="AO_M14" scBasePath="PM.PM2.MFC" aioType="float" formatString="F1" diAlarm="DI_MFC14Offline" AlarmText="Alarm114 MFC14 Offline[DI-364]" />
<IoMfc3 id="Mfc15" display="Mfc15" schematicId="Mfc15" unit="sccm" aiActMode="AI_M15ActMode" aoSetMode="AO_M15CtrlMode" aiFlow="AI_M15" aoFlow="AO_M15" scBasePath="PM.PM2.MFC" aioType="float" formatString="F1" diAlarm="DI_MFC15Offline" AlarmText="Alarm115 MFC15 Offline[DI-365]" />
<IoMfc3 id="Mfc16" display="Mfc16" schematicId="Mfc16" unit="sccm" aiActMode="AI_M16ActMode" aoSetMode="AO_M16CtrlMode" aiFlow="AI_M16" aoFlow="AO_M16" scBasePath="PM.PM2.MFC" aioType="float" formatString="F1" diAlarm="DI_MFC16Offline" AlarmText="Alarm116 MFC16 Offline[DI-366]" />
<IoMfc3 id="Mfc17" display="Mfc17" schematicId="Mfc17" unit="sccm" aiActMode="AI_M17ActMode" aoSetMode="AO_M17CtrlMode" aiFlow="AI_M17" aoFlow="AO_M17" scBasePath="PM.PM1.MFC" aioType="float" formatString="F1" diAlarm="DI_MFC17Offline" AlarmText="Alarm117 MFC17 Offline[DI-367]" />
<IoMfc3 id="Mfc19" display="Mfc19" schematicId="Mfc19" unit="sccm" aiActMode="AI_M19ActMode" aoSetMode="AO_M19CtrlMode" aiFlow="AI_M19" aoFlow="AO_M19" scBasePath="PM.PM2.MFC" aioType="float" formatString="F1" diAlarm="DI_MFC19Offline" AlarmText="Alarm119 MFC19 Offline[DI-369]" />
<IoMfc3 id="Mfc20" display="Mfc20" schematicId="Mfc20" unit="sccm" aiActMode="AI_M20ActMode" aoSetMode="AO_M20CtrlMode" aiFlow="AI_M20" aoFlow="AO_M20" scBasePath="PM.PM2.MFC" aioType="float" formatString="F1" diAlarm="DI_MFC20Offline" AlarmText="Alarm120 MFC20 Offline[DI-370]" />
<IoMfc3 id="Mfc22" display="Mfc22" schematicId="Mfc22" unit="sccm" aiActMode="AI_M22ActMode" aoSetMode="AO_M22CtrlMode" aiFlow="AI_M22" aoFlow="AO_M22" scBasePath="PM.PM2.MFC" aioType="float" formatString="F1" diAlarm="DI_MFC22Offline" AlarmText="Alarm122 MFC22 Offline[DI-372]" />
@ -136,16 +134,12 @@
<IoMfc3 id="Mfc36" display="Mfc36" schematicId="Mfc36" unit="sccm" aiActMode="AI_M36ActMode" aoSetMode="AO_M36CtrlMode" aiFlow="AI_M36" aoFlow="AO_M36" scBasePath="PM.PM2.MFC" aioType="float" formatString="F1" diAlarm="DI_MFC36Offline" AlarmText="Alarm136 MFC36 Offline[DI-386]" />
<IoMfc3 id="Mfc37" display="Mfc37" schematicId="Mfc37" unit="sccm" aiActMode="AI_M37ActMode" aoSetMode="AO_M37CtrlMode" aiFlow="AI_M37" aoFlow="AO_M37" scBasePath="PM.PM2.MFC" aioType="float" formatString="F1" diAlarm="DI_MFC37Offline" AlarmText="Alarm137 MFC37 Offline[DI-387]" />
<IoMfc3 id="Mfc38" display="Mfc38" schematicId="Mfc38" unit="sccm" aiActMode="AI_M38ActMode" aoSetMode="AO_M38CtrlMode" aiFlow="AI_M38" aoFlow="AO_M38" scBasePath="PM.PM2.MFC" aioType="float" formatString="F1" diAlarm="DI_MFC38Offline" AlarmText="Alarm138 MFC38 Offline[DI-388]" />
<IoMfc3 id="Mfc40" display="Mfc40" schematicId="Mfc40" unit="sccm" aiActMode="AI_M40ActMode" aoSetMode="AO_M40CtrlMode" aiFlow="AI_M40" aoFlow="AO_M40" scBasePath="PM.PM2.MFC" aioType="float" formatString="F1" diAlarm="DI_MFC40Offline" AlarmText="Alarm140 MFC40 Offline[DI-390]" />
<IoMfc3 id="Mfc41" display="Mfc41" schematicId="Mfc41" unit="sccm" aiActMode="AI_M41ActMode" aoSetMode="AO_M41CtrlMode" aiFlow="AI_M41" aoFlow="AO_M41" scBasePath="PM.PM2.MFC" aioType="float" formatString="F1" diAlarm="DI_MFC41Offline" AlarmText="Alarm141 MFC41 Offline[DI-391]" />
<IoMfc3 id="Mfc42" display="Mfc42" schematicId="Mfc42" unit="sccm" aiActMode="AI_M42ActMode" aoSetMode="AO_M42CtrlMode" aiFlow="AI_M42" aoFlow="AO_M42" scBasePath="PM.PM2.MFC" aioType="float" formatString="F1" diAlarm="DI_MFC42Offline" AlarmText="Alarm142 MFC42 Offline[DI-392]" />
<IoMfc3 id="Mfc43" display="Mfc43" schematicId="Mfc43" unit="sccm" aiActMode="AI_M43ActMode" aoSetMode="AO_M43CtrlMode" aiFlow="AI_M43" aoFlow="AO_M43" scBasePath="PM.PM2.MFC" aioType="float" formatString="F1" diAlarm="DI_MFC43Offline" AlarmText="Alarm143 MFC43 Offline[DI-393]" />
<IoMfc3 id="Mfc44" display="Mfc44" schematicId="Mfc44" unit="sccm" aiActMode="AI_M44ActMode" aoSetMode="AO_M44CtrlMode" aiFlow="AI_M44" aoFlow="AO_M44" scBasePath="PM.PM2.MFC" aioType="float" formatString="F1" diAlarm="DI_MFC44Offline" AlarmText="Alarm144 MFC44 Offline[DI-394]" />
<IoMfc3 id="Mfc45" display="Mfc45" schematicId="Mfc45" unit="sccm" aiActMode="AI_M45ActMode" aoSetMode="AO_M45CtrlMode" aiFlow="AI_M45" aoFlow="AO_M45" scBasePath="PM.PM2.MFC" aioType="float" formatString="F1" diAlarm="DI_MFC45Offline" AlarmText="Alarm145 MFC45 Offline[DI-395]" />
</IoMfcs>
<IoPressureMeters classType="Aitex.Core.RT.Device.Devices.IoPressure" assembly="MECF.Framework.RT.EquipmentLibrary">
<IoPressureMeter id="Pressure1" display="PC1" schematicId="Pressure1" scBasePath="PM.{module}.PC" unit="mbar" aioType="float" aiOpenDegree="AI_PC1Valve" aiActMode="AI_PC1ActMode" aoSetMode="AO_PC1CtrlMode" aiValue="AI_PressCtrl1" aoValue="AO_PressCtrl1" formatString="0.0" diAlarm="DI_PC01Offline" AlarmText="Alarm141 PC1 Offline[DI-391]" />
@ -543,7 +537,7 @@
doGreen="DO_TowerGreen" doYellow="DO_TowerYellow" doRed="DO_TowerRed" doBuzzer="DO_Buzzer"
aoBuzzerBlinkFreq="AO_BuzzerBlinkFreqHz"/>
</IoSignalTowers>
<IoChamberMoveBodys classType="Aitex.Core.RT.Device.Devices.IoChamberMoveBody" assembly="MECF.Framework.RT.EquipmentLibrary">
<IoChamberMoveBodys classType="Aitex.Core.RT.Device.Devices.IoChamberMoveBodySicMultiple" assembly="MECF.Framework.RT.EquipmentLibrary">
<IoChamberMoveBody id="ChamberMoveBody" module="" display="ChamberMoveBody" schematicId="ChamberMoveBody" unit="" aioType="" diUpFaceback="DI_ChamMoveBodyUp" diDownFaceback="DI_ChamMoveBodyDown" diFront=" DI_ChamMoveBodyFront" diEndFaceback="DI_ChamMoveBodyEnd" doUpSetpoint="DO_ChamMoveBodyUp" doDownSetpoint="DO_ChamMoveBodyDown" doUpBrake="DO_ChamMoveBodyUpAirBrake" doForward="DO_ChamMoveBodyForward" doBackward="DO_ChamMoveBodyBackward" doForwardLatch="DO_ChamMoveBodyBrakerForward" doBackwardLatch="DO_ChamMoveBodyBrakerBackward" diForwardLatch="DI_ChamMoveBodyUpLatchFW" diBackwardLatch="DI_ChamMoveBodyEndLatchBW" diRemote="DI_ChamLidPushButtonLocal" diLock="DI_ManualLidUpPB" diUpDownEnable="DI_ChamMoveBodyUpDownEnableFB" doUpDownEnable="DO_ChamMoveBodyUpDownEnable" />
</IoChamberMoveBodys>
<IoGasConnectors classType="Aitex.Core.RT.Device.Devices.IoGasConnector" assembly="MECF.Framework.RT.EquipmentLibrary">
@ -551,11 +545,9 @@
</IoGasConnectors>
<IoLids classType="Aitex.Core.RT.Device.Devices.IoLid" assembly="MECF.Framework.RT.EquipmentLibrary">
<IoLid id="SHLid" module="" display="SH Lid" schematicId="SHLid" unit="" aioType="" diLoosenFaceback="DI_BottomChamLoosen" diTightenFaceback="DI_BottomChamTighten" diClosedFaceback="DI_BottomChamClosed" doLoosenSetpoint="DO_BottomChamLoosen" doTightenSetpoint="DO_BottomChamTighten" />
<IoLid id="MiddleLid" module="" display="Middle Lid" schematicId="MiddleLid" unit="" aioType="" />
</IoLids>
<IoLidSwings classType="Aitex.Core.RT.Device.Devices.IoLidSwing" assembly="MECF.Framework.RT.EquipmentLibrary">
<IoLidSwing id="SHLidSwing" module="" display="SH Lid Swing" schematicId="SHLidSwing" unit="" aioType="" diLidLockFaceback="DI_TOPChamSwingLock" diLidUnlockFaceback="DI_TOPChamSwingUnlock" doLidLockSetpoint="DO_TOPChamSwingLock" doLidUnlockSetpoint="DO_TOPChamSwingUnlock" />
<IoLidSwing id="MiddleLidSwing" module="" display="Middle Lid Swing" schematicId="MiddleLidSwing" unit="" aioType="" />
</IoLidSwings>
<IoConfinementRings classType="Aitex.Core.RT.Device.Devices.IoConfinementRing" assembly="MECF.Framework.RT.EquipmentLibrary">
<IoConfinementRing id="ConfinementRing" module="" display="ConfinementRing" schematicId="ConfinementRing" unit="" aioType="" diRingDownFaceback="DI_ConfinementRingDown" diRingUpFaceback="DI_ConfinementRingUp" diRingDone="DI_ConfinementRingDone" diRingServoOn="DI_ConfinementRingServoOn" diRingHomed="DI_ConfinementRingHomed" diRingBusy="DI_ConfinementRingBusy" diRingServoError="DI_ConfinementRingServoError" doRingServoOn="DO_ConfinementRingServoOn" doRingJogUp="DO_ConfinementRingJogUp" doRingJogDown="DO_ConfinementRingJogDown" doRingStop="DO_ConfinementRingStop" doRingTeachUp="DO_ConfinementRingUpPosTeach" doRingTeachDown="DO_ConfinementRingDownPosTeach" doRingMoveUp="DO_ConfinementRingMoveUp" doRingMoveDown="DO_ConfinementRingMoveDown" aiRingCurPos="AI_ConfinementRingCurPos" aiRingUpPos="AI_ConfinementRingUpPos" aiRingDownPos="AI_ConfinementRingDownPos" aoRingMode="AO_ConfinementRingMode" aoRingSpeed="AO_ConfinementRingSpeed" aoRingDistance="AO_ConfinementRingDistance" doRingServoReset="DO_ConfinementRingServoReset" aoRingUpPos="AO_ConfinementRingUpPos" aoRingDownPos="AO_ConfinementRingDownPos" />

View File

@ -143,6 +143,7 @@
<DI_ITEM Index="209" Name="DI_DORRefillFB(V76)" BufferOffset="209" Addr="209" Description="" />
<DI_ITEM Index="210" Name="DI_GasBoxVentBypass(V25)" BufferOffset="210" Addr="210" Description="" />
<DI_ITEM Index="212" Name="DI_PumpBypassFB(V27)" BufferOffset="212" Addr="212" Description="" />
<DI_ITEM Index="214" Name="DI_CarryGasFinalFB(V97)" BufferOffset="214" Addr="214" Description="" />
<DI_ITEM Index="216" Name="DI_PSUEnableFB" BufferOffset="216" Addr="216" Description="" />
<DI_ITEM Index="217" Name="DI_InnerHeaterEnableFB" BufferOffset="217" Addr="217" Description="" />
<DI_ITEM Index="218" Name="DI_MiddleHeaterEnableFB" BufferOffset="218" Addr="218" Description="" />
@ -160,7 +161,6 @@
<DI_ITEM Index="234" Name="DI_SHLidSwingUnlockFB" BufferOffset="234" Addr="234" Description="" />
<DI_ITEM Index="235" Name="DI_ChamMoveBodyBrakerForwardFB" BufferOffset="235" Addr="235" Description="" />
<DI_ITEM Index="236" Name="DI_ChamMoveBodyBrakerBackwardFB" BufferOffset="236" Addr="236" Description="" />
<DI_ITEM Index="241" Name="DI_CarryGasFinalFB(V97)" BufferOffset="241" Addr="241" Description="" />
<DI_ITEM Index="243" Name="DI_MiddleLidLoosenFB" BufferOffset="243" Addr="243" Description="" />
<DI_ITEM Index="244" Name="DI_MiddleLidTightenFB" BufferOffset="244" Addr="244" Description="" />
<DI_ITEM Index="245" Name="DI_MiddleLidSwingLockFB" BufferOffset="245" Addr="245" Description="" />

View File

@ -51,7 +51,7 @@ namespace SicModules.Devices
private DeviceTimer _timer = new DeviceTimer();
public bool ServeHomeDone => _diRelativeHomeDone.Value;
public bool IsServeHomeDone => _diRelativeHomeDone.Value;
@ -143,6 +143,7 @@ namespace SicModules.Devices
DATA.Subscribe($"{Module}.{Name}.IsServoBusy", () => IsServoBusy);
DATA.Subscribe($"{Module}.{Name}.IsServoError", () => IsServoError);
DATA.Subscribe($"{Module}.{Name}.IsMoveDone", () => IsMoveDone);
DATA.Subscribe($"{Module}.{Name}.IsServeHomeDone", () => IsServeHomeDone);
DATA.Subscribe($"{Module}.{Name}.CurPos", () => CurPos);
DATA.Subscribe($"{Module}.{Name}.CCD1Degree", () => CCD1Degree);
DATA.Subscribe($"{Module}.{Name}.CCD2Degree", () => CCD2Degree);

View File

@ -155,7 +155,7 @@ namespace SicModules.LLs
private LoadSeparateRoutine _loadSeparateRoutine;
private LoadRotationHomeRoutine _loadRotationHomeRoutine;
private LoadLockTrayLodaAngleRoutine _loadLockTrayLodaAngleRoutine;
private LoadLockTrayLoadAngleRoutine _loadLockTrayLoadAngleRoutine;
public LoadLockModule(ModuleName module) : base(1)
@ -206,7 +206,7 @@ namespace SicModules.LLs
_loadLockGroupRoutine = new LoadLockGroupRoutine(module);
_loadSeparateRoutine = new LoadSeparateRoutine(module);
_loadRotationHomeRoutine = new LoadRotationHomeRoutine();
_loadLockTrayLodaAngleRoutine = new LoadLockTrayLodaAngleRoutine(module);
_loadLockTrayLoadAngleRoutine = new LoadLockTrayLoadAngleRoutine(module);
}
private void InitDevice()
@ -596,7 +596,7 @@ namespace SicModules.LLs
private bool FsmStartTrayHome(object[] param)
{
Result ret = StartRoutine(_loadLockTrayLodaAngleRoutine);
Result ret = StartRoutine(_loadLockTrayLoadAngleRoutine);
if (ret == Result.FAIL || ret == Result.DONE)
return false;
return ret == Result.RUN;

View File

@ -221,7 +221,7 @@ namespace SicModules.LLs.Routines.Base
}
return true;
},
() => _llRotation.ServeHomeDone
() => _llRotation.IsServeHomeDone
, timeout * 1000);

View File

@ -1,15 +0,0 @@
using SicModules.LLs.Routines.Base;
namespace SicModules.LLs.Routines
{
public class LoadLockTrayAlignerRoutine:LoadLockBaseRoutine
{
/*
*
*/
public LoadLockTrayAlignerRoutine()
{
Name = "Tray Aligner";
}
}
}

View File

@ -15,7 +15,7 @@ namespace SicModules.LLs.Routines
/// <summary>
/// Tray盘在Load腔中根据感应器找上料角度
/// </summary>
public class LoadLockTrayLodaAngleRoutine : LoadLockBaseRoutine
public class LoadLockTrayLoadAngleRoutine : LoadLockBaseRoutine
{
private enum RoutineStep
{
@ -36,10 +36,10 @@ namespace SicModules.LLs.Routines
private LoadLockTrayClawRoutine _trayUnClamp = new LoadLockTrayClawRoutine();
public LoadLockTrayLodaAngleRoutine(ModuleName module)
public LoadLockTrayLoadAngleRoutine(ModuleName module)
{
Module = module.ToString();
Name = "TrayHome";
Name = "Tray Load Angle";
}
public override Result Start(params object[] objs)

View File

@ -308,6 +308,9 @@ namespace SicModules.PMs
[Tag("Mfc16")]
public IoMFC Mfc16 { get; set; }
[Tag("Mfc17")]
public IoMFC Mfc17 { get; set; }
[Tag("Mfc19")]
public IoMFC Mfc19 { get; set; }
@ -425,7 +428,7 @@ namespace SicModules.PMs
#region ChamberMoveBody
[Tag("ChamberMoveBody")]
[Tag("IoChamberMoveBodySicMultiple")]
public IoChamberMoveBody ChamberMoveBody { get; set; }
#endregion ChamberMoveBody
@ -435,9 +438,6 @@ namespace SicModules.PMs
[Tag("SHLidSwing")]
public IoLidSwing SHLidSwing { get; set; }
[Tag("MiddleLidSwing")]
public IoLidSwing MiddleLidSwing { get; set; }
#endregion SHLidSwing
#region ConfinementRing
@ -517,7 +517,7 @@ namespace SicModules.PMs
private List<string> _mfc = new List<string>()
{
"Mfc1", "Mfc2", "Mfc3", "Mfc4", "Mfc5", "Mfc6", "Mfc7", "Mfc8","Mfc9",
"Mfc10", "Mfc11", "Mfc12", "Mfc13", "Mfc14", "Mfc15", "Mfc16","Mfc19",
"Mfc10", "Mfc11", "Mfc12", "Mfc13", "Mfc14", "Mfc15", "Mfc16","Mfc17","Mfc19",
"Mfc20","Mfc22", "Mfc23", "Mfc26", "Mfc27", "Mfc28", "Mfc29",
"Mfc31", "Mfc33", "Mfc34", "Mfc35", "Mfc36", "Mfc37", "Mfc38","Mfc31",
"Mfc40", "Mfc41", "Mfc42", "Mfc43", "Mfc44", "Mfc45"};
@ -546,6 +546,7 @@ namespace SicModules.PMs
list.Add(Mfc14);
list.Add(Mfc15);
list.Add(Mfc16);
list.Add(Mfc17);
list.Add(Mfc19);
list.Add(Mfc20);
list.Add(Mfc22);
@ -2103,9 +2104,9 @@ namespace SicModules.PMs
{
ChamberMoveBody.FuncCheckSwingUnlock = () =>
{
if (SHLidSwing != null && MiddleLidSwing != null)
if (SHLidSwing != null )
{
return SHLidSwing.LidUnlockFaceback || MiddleLidSwing.LidUnlockFaceback;
return SHLidSwing.LidUnlockFaceback ;
}
else
{

View File

@ -5,6 +5,7 @@ using Aitex.Core.RT.Device.Devices;
using Aitex.Core.RT.Event;
using Aitex.Core.RT.Routine;
using MECF.Framework.Common.Equipment;
using MECF.Framework.RT.EquipmentLibrary.Devices;
using SicModules.PMs.Routines.Base;
namespace SicModules.PMs.Routines
@ -15,8 +16,7 @@ namespace SicModules.PMs.Routines
public IoGasConnector _ioGasConnector;
public IoLid _ioSHLid;
public IoLidSwing _ioSHSwing;
public IoLid _ioMiddleLid;
public IoLidSwing _ioMiddleSwing;
private PMModule _pm1Module;
private string _moveBodyGroup;
@ -27,7 +27,7 @@ namespace SicModules.PMs.Routines
private bool IsShOpen = false;
private bool IsTopOpen = false;
private bool IsMiddleOpen = false;
private Stopwatch _swTimer = new Stopwatch();
public int ElapsedTime
@ -78,13 +78,12 @@ namespace SicModules.PMs.Routines
Name = "MoveBody";
_pm1Module = pm1;
_ioChamberMoveBody = DEVICE.GetDevice<IoChamberMoveBody>($"{pm1.Name}.{"ChamberMoveBody"}");
_ioChamberMoveBody = DEVICE.GetDevice<IoChamberMoveBodySicMultiple>($"{pm1.Name}.{"ChamberMoveBody"}");
_ioGasConnector = DEVICE.GetDevice<IoGasConnector>($"{pm1.Name}.{"GasConnector"}");
_ioSHLid = DEVICE.GetDevice<IoLid>($"{pm1.Name}.{"SHLid"}");
_ioSHSwing = DEVICE.GetDevice<IoLidSwing>($"{pm1.Name}.{"SHLidSwing"}");
_ioMiddleSwing = DEVICE.GetDevice<IoLidSwing>($"{pm1.Name}.{"MiddleLidSwing"}");
_timeoutLid = 10;
_timeoutSwing = 10;
@ -112,11 +111,11 @@ namespace SicModules.PMs.Routines
EV.PostWarningLog(Module, "PM is not at ATM State(DI-9 PMATMSW),do not open Cham!");
return Result.FAIL;
}
if (!_ioChamberMoveBody.DownFaceback)
{
EV.PostWarningLog(Module, "Chamber must in Down position!");
return Result.FAIL;
}
//if (!_ioChamberMoveBody.DownFaceback)
//{
// EV.PostWarningLog(Module, "Chamber must in Down position!");
// return Result.FAIL;
//}
if (!_ioChamberMoveBody.FrontFaceback)
{
EV.PostWarningLog(Module, "Chamber must in Front position!");
@ -137,14 +136,8 @@ namespace SicModules.PMs.Routines
{
IsShOpen = true;
IsTopOpen = false;
IsMiddleOpen = false;
}
else if (_ioMiddleLid.LoosenFaceback)
{
IsShOpen = false;
IsTopOpen = false;
IsMiddleOpen = true;
}
_swTimer.Restart();
Reset();
@ -171,18 +164,11 @@ namespace SicModules.PMs.Routines
if (_Open)
{
if (_moveBodyGroup.Contains("MID"))
{
CheckLidTighten((int)RoutineStep.RoutineStep9, _ioMiddleLid, "MiddleLid", false, _timeoutLid);
TimeDelay((int)RoutineStep.TimeDelay2, 2);
CheckLidSwingLock((int)RoutineStep.RoutineStep10, _ioMiddleSwing, "MiddleLid", false, _timeoutSwing);
}
else
{
CheckLidTighten((int)RoutineStep.RoutineStep9, _ioSHLid, "SHLid", false, _timeoutLid);
TimeDelay((int)RoutineStep.TimeDelay2, 2);
CheckLidSwingLock((int)RoutineStep.RoutineStep10, _ioSHSwing, "SHLid", false, _timeoutSwing);
}
TimeDelay((int)RoutineStep.RoutineStepTime2, 2);
@ -195,14 +181,7 @@ namespace SicModules.PMs.Routines
TimeDelay((int)RoutineStep.TimeDelay2, 2);
CheckLidTighten((int)RoutineStep.RoutineStep1, _ioSHLid, "SHLid", true, _timeoutLid);
}
else if (IsMiddleOpen)
{
CheckLidSwingLock((int)RoutineStep.RoutineStep6, _ioMiddleSwing, "MiddleLid", true, _timeoutSwing);
TimeDelay((int)RoutineStep.TimeDelay2, 2);
CheckLidTighten((int)RoutineStep.RoutineStep3, _ioMiddleLid, "MiddleLid", true, _timeoutLid);
}
GasConnectorTighten((int)RoutineStep.RoutineStep9, true, _timeoutGasConnector);
//关闭V76

View File

@ -121,12 +121,11 @@
<Compile Include="LLs\Routines\LoadLockPumpRoutine.cs" />
<Compile Include="LLs\Routines\LoadLockPurgeRoutine.cs" />
<Compile Include="LLs\Routines\LoadLockServoToRoutine.cs" />
<Compile Include="LLs\Routines\LoadLockTrayAlignerRoutine.cs" />
<Compile Include="LLs\Routines\LoadLockTrayClawRoutine.cs" />
<Compile Include="LLs\Routines\LoadLockVentRoutine.cs" />
<Compile Include="LLs\Routines\LoadRotationHomeRoutine.cs" />
<Compile Include="LLs\Routines\LoadSeparateRoutine.cs" />
<Compile Include="LLs\Routines\LoadLockTrayLodaAngleRoutine.cs" />
<Compile Include="LLs\Routines\LoadLockTrayLoadAngleRoutine.cs" />
<Compile Include="LLs\SicLoadLock.cs" />
<Compile Include="PMs\PM1.cs" />
<Compile Include="PMs\PM2.cs" />

View File

@ -7,6 +7,7 @@ using Aitex.Core.RT.Device.Unit;
using Aitex.Core.RT.Event;
using Aitex.Core.RT.Routine;
using Aitex.Core.RT.SCCore;
using MECF.Framework.Common.CommonData;
using MECF.Framework.Common.Equipment;
using MECF.Framework.Common.Schedulers;
using MECF.Framework.Common.SubstrateTrackings;
@ -1409,12 +1410,24 @@ namespace SicModules.TMs.Routines.Base
}
}
protected void RobotMoveSingleStepAndWait(int id, RobotBaseDevice robot, ModuleName source, int slot, RobotArmEnum hand, int timeout,bool isPlace, bool isGoIn)
/// <summary>
/// 机械手单步移动指令组合成Pick或PLace动作
/// </summary>
/// <param name="id"></param>
/// <param name="robot">机械手对象</param>
/// <param name="source">目标模块</param>
/// <param name="slot">工位号</param>
/// <param name="hand">手臂类型</param>
/// <param name="action">标识机械手取放动作</param>
/// <param name="isMoving">机械手是否缩回</param>
/// <param name="isGoIn">机械手是否伸进去</param>
/// <param name="timeout">超时时间</param>
protected void RobotMoveSingleStepAndWait(int id, RobotBaseDevice robot, ModuleName source, int slot, RobotArmEnum hand, RobotAction action, bool isMoving, bool isGoIn, int timeout)
{
Tuple<bool, Result> ret = ExecuteAndWait(id, () =>
{
Notify($"Goto {source} {slot + 1} use {(hand == RobotArmEnum.Blade1 ? "Blade1" : "Blade2")}");
List<object> para = new List<object>() { hand, source, slot, isPlace, isGoIn };
Notify($"{action} {source} {slot + 1} use {(hand == RobotArmEnum.Blade1 ? "Blade1" : "Blade2")}");
List<object> para = new List<object>() { hand, source, slot, action, isMoving, isGoIn };
if (!robot.MoveSingleStep(para.ToArray()))
{
robot.IsBusy = false;
@ -1434,7 +1447,7 @@ namespace SicModules.TMs.Routines.Base
{
if (ret.Item2 == Result.FAIL)
{
Stop($"Goto failed, error {robot.ErrorCode}");
Stop($"{action} failed, error {robot.ErrorCode}");
throw (new RoutineFaildException());
}
else if (ret.Item2 == Result.TIMEOUT) //timeout
@ -2031,6 +2044,7 @@ namespace SicModules.TMs.Routines.Base
{
Tuple<bool, Result> ret = ExecuteAndWait(id, () =>
{
Notify($"Wait servo load angle run");
if (_sicServo != null)
{
_sicServo.LoadAngleRun(speed);
@ -2095,6 +2109,7 @@ namespace SicModules.TMs.Routines.Base
{
Tuple<bool, Result> ret = ExecuteAndWait(id, () =>
{
Notify($"Wait servo unload angle run");
if (_sicServo != null)
{
_sicServo.UnloadAngleRun(speed);

View File

@ -4,6 +4,7 @@ using Aitex.Core.RT.Event;
using Aitex.Core.RT.Log;
using Aitex.Core.RT.Routine;
using Aitex.Core.RT.SCCore;
using MECF.Framework.Common.CommonData;
using MECF.Framework.Common.Equipment;
using MECF.Framework.Common.SubstrateTrackings;
using MECF.Framework.RT.EquipmentLibrary.HardwareUnits.Robots;
@ -281,7 +282,7 @@ namespace SicModules.TMs.Routines
CheckRobotReady((int)RoutineStep.CheckRobotReady, RobotDevice, _pickTimeout);
CheckBeforePick((int)RoutineStep.CheckBeforePick, _target, _targetSlot, _blade);
RobotRequestWaferPresent((int)RoutineStep.BeforePickRequestWaferPresent, RobotDevice, _blade, _pickTimeout);
////CheckWaferInfoByRobotRQ((int)RoutineStep.AfterPickCheckWaferInfoByRobotSensor, RobotDevice, _blade, Module, _target.ToString(), 1000);
CheckWaferInfoByRobotRQ((int)RoutineStep.AfterPickCheckWaferInfoByRobotSensor, RobotDevice, _blade, Module, _target.ToString(), 1000);
WaitPMReadySensor((int)RoutineStep.WaitPMSensor, _target,5);
SetRobotExtendToDO((int)RoutineStep.SetRobortExtendToDo, _target, 2);
CheckRobotReady((int)RoutineStep.CheckRobotReady, RobotDevice, _pickTimeout);
@ -300,13 +301,13 @@ namespace SicModules.TMs.Routines
//要求从原点位转到Load位置,抵消
WaitSicServoLoadAngleRun((int)RoutineStep.SicServoLoadAngleRun, _sicServoLoadAngle, 90);
RobotMoveSingleStepAndWait((int)RoutineStep.RobotGotoPmLowAndWait, RobotDevice, _target, _targetSlot, _blade, 60, false, true);//先进去,停在高位
RobotMoveSingleStepAndWait((int)RoutineStep.RobotGotoPmLowAndWait, RobotDevice, _target, _targetSlot, _blade, RobotAction.Picking, false,true,60);//先进去,停在高位
TimeDelay((int)RoutineStep.TimeDelay3, 3);
//等磁流体开始旋转释放Tray盘
WaitSicServoUnloadAngleRun((int)RoutineStep.SicServoUnloadAngleRun, _sicServoUnloadAngle, 90);//开始旋转释放Tray盘
TimeDelay((int)RoutineStep.TimeDelay4, 3);
RobotMoveSingleStepAndWait((int)RoutineStep.RobotGotoPmHighAndWait, RobotDevice, _target, _targetSlot, _blade, 60, false, false);//从高位退出去
RobotMoveSingleStepAndWait((int)RoutineStep.RobotGotoPmHighAndWait, RobotDevice, _target, _targetSlot, _blade, RobotAction.Picking, true,false,60);//从高位退出去
}
@ -318,7 +319,7 @@ namespace SicModules.TMs.Routines
IsPicking = false;
TimeDelay((int)RoutineStep.TimeDelay2, 1);
RobotRequestWaferPresent((int)RoutineStep.RequestWaferPresent, RobotDevice, _blade, _pickTimeout);
////CheckWaferInfoByRobotRQ((int)RoutineStep.CheckWaferInfoByRobotSensor, RobotDevice, _blade, Module, _target.ToString(), 1000);
CheckWaferInfoByRobotRQ((int)RoutineStep.CheckWaferInfoByRobotSensor, RobotDevice, _blade, Module, _target.ToString(), 1000);
if (_requestAWCData)
{

View File

@ -4,6 +4,7 @@ using Aitex.Core.RT.Event;
using Aitex.Core.RT.Log;
using Aitex.Core.RT.Routine;
using Aitex.Core.RT.SCCore;
using MECF.Framework.Common.CommonData;
using MECF.Framework.Common.Equipment;
using MECF.Framework.Common.SubstrateTrackings;
using MECF.Framework.RT.EquipmentLibrary.HardwareUnits.PMs;
@ -263,7 +264,7 @@ namespace SicModules.TMs.Routines
CheckBeforePlace((int)RoutineStep.CheckBeforePlace, _target, _targetSlot, _blade);
RobotRequestWaferPresent((int)RoutineStep.BeforePlaceRequestWaferPresent, RobotDevice, _blade, _placeTimeout);
////CheckWaferInfoByRobotRQ((int)RoutineStep.BeforePlaceCheckWaferInfoByRobotSensor, RobotDevice, _blade, Module, _target.ToString(), 10);
CheckWaferInfoByRobotRQ((int)RoutineStep.BeforePlaceCheckWaferInfoByRobotSensor, RobotDevice, _blade, Module, _target.ToString(), 10);
WaitPMReadySensor((int)RoutineStep.WaitPMSensor, _target, 5);
SetRobotExtendToDO((int)RoutineStep.SetRobortExtendToDo, _target, 2);
@ -282,29 +283,24 @@ namespace SicModules.TMs.Routines
WaitCheckServoParkHomePosition((int)RoutineStep.WaitCheckServoHome, _serveHomeMaxDeviation, 90);
RobotMoveSingleStepAndWait((int)RoutineStep.RobotGotoPmLowAndWait, RobotDevice, _target, _targetSlot, _blade, _placeTimeout,true,true);//先进去,停在高位
RobotMoveSingleStepAndWait((int)RoutineStep.RobotGotoPmLowAndWait, RobotDevice, _target, _targetSlot, _blade, RobotAction.Placing,false, true,60);//先进去,停在高位
TimeDelay((int)RoutineStep.TimeDelay4, 3);
WaitSicServoLoadAngleRun((int)RoutineStep.WaitSicServoLoadAngleRun, _sicServoLoadAngleRun, 90);//机械手到高位磁流体旋转锁紧Tray盘
TimeDelay((int)RoutineStep.TimeDelay5, 3);
RobotMoveSingleStepAndWait((int)RoutineStep.RobotGotoPmHighAndWait, RobotDevice, _target, _targetSlot, _blade, _placeTimeout, true, false);//从高位出去
//测试用
//SetServoActualSpeed((int)RoutineStep.SetServoActualSpeed, 5, 90);
RobotMoveSingleStepAndWait((int)RoutineStep.RobotGotoPmHighAndWait, RobotDevice, _target, _targetSlot, _blade, RobotAction.Placing, true,false,60);//从高位出去
}
else//别的模块保持机械手逻辑不变
{
//RobotMoveSingleStepAndWait((int)RoutineStep.RobotGotoPmLowAndWait, RobotDevice, _target, _targetSlot, _blade, _placeTimeout, true, true);//先进去,停在高位
//RobotMoveSingleStepAndWait((int)RoutineStep.RobotGotoPmHighAndWait, RobotDevice, _target, _targetSlot, _blade, _placeTimeout, true, false);//从高位出去
Place((int)RoutineStep.Place, RobotDevice, _target, _targetSlot, _blade, _placeTimeout);
}
IsPicking = false;
TimeDelay((int)RoutineStep.TimeDelay1, 1);
RobotRequestWaferPresent((int)RoutineStep.RequestWaferPresent, RobotDevice, _blade, _placeTimeout);
////CheckWaferInfoByRobotRQ((int)RoutineStep.CheckWaferInfoByRobotSensor, RobotDevice, _blade, Module, _target.ToString(), 10);
CheckWaferInfoByRobotRQ((int)RoutineStep.CheckWaferInfoByRobotSensor, RobotDevice, _blade, Module, _target.ToString(), 10);
if (_requestAWCData)
{

View File

@ -18,6 +18,7 @@ using Aitex.Sorter.Common;
using MECF.Framework.Common.Equipment;
using MECF.Framework.Common.Event;
using MECF.Framework.Common.PLC;
using MECF.Framework.RT.EquipmentLibrary.HardwareUnits.Robots;
using SicModules.TMs.Routines;
using SicAds = SicModules.Devices.SicAds;
@ -574,6 +575,10 @@ namespace SicModules.TMs
OP.Subscribe($"{Module}.SetOnline", (string cmd, object[] args) => PutOnline());
OP.Subscribe($"{Module}.SetOffline", (string cmd, object[] args) => PutOffline());
OP.Subscribe($"TMRobot.RobotArmBlade1SetParameter", (string cmd, object[] args) =>RobotArmBlade1SetParameter(args));
OP.Subscribe($"TMRobot.RobotArmBlade1ReadParameter", (string cmd, object[] args) => RobotArmBlade1ReadParameter(args));
}
private void InitData()
@ -703,6 +708,16 @@ namespace SicModules.TMs
return true;
}
private bool RobotArmBlade1SetParameter(object[] param)
{
return RobotDevice.SetParameter(new object[] { param[0], RobotArmEnum.Blade1, param[1] });
}
private bool RobotArmBlade1ReadParameter(object[] param)
{
return RobotDevice.ReadParameter(new object[] { param[0], RobotArmEnum.Blade1});
}
private bool FsmExitError(object[] param)
{
return true;

View File

@ -2,34 +2,34 @@
"Major": 23,
"Minor": 9,
"Patch": 2,
"PreReleaseTag": "----multiplate-develop.587",
"PreReleaseTagWithDash": "-----multiplate-develop.587",
"PreReleaseTag": "----multiplate-develop.588",
"PreReleaseTagWithDash": "-----multiplate-develop.588",
"PreReleaseLabel": "----multiplate-develop",
"PreReleaseLabelWithDash": "-----multiplate-develop",
"PreReleaseNumber": 587,
"WeightedPreReleaseNumber": 587,
"PreReleaseNumber": 588,
"WeightedPreReleaseNumber": 588,
"BuildMetaData": null,
"BuildMetaDataPadded": "",
"FullBuildMetaData": "Branch.----multiplate-develop.Sha.4c18bc3c1736a4751da6f6c99bfdb84962b7ed2c",
"FullBuildMetaData": "Branch.----multiplate-develop.Sha.a5a61abb6afe3222e126eaf3cd2f3b3bf109b405",
"MajorMinorPatch": "23.9.2",
"SemVer": "23.9.2-----multiplate-develop.587",
"LegacySemVer": "23.9.2-----multiplate-de587",
"LegacySemVerPadded": "23.9.2-----multiplate-d0587",
"AssemblySemVer": "23.9.2.587",
"AssemblySemFileVer": "23.9.2.587",
"FullSemVer": "23.9.2-----multiplate-develop.587",
"InformationalVersion": "23.9.2-----multiplate-develop.587+Branch.----multiplate-develop.Sha.4c18bc3c1736a4751da6f6c99bfdb84962b7ed2c",
"SemVer": "23.9.2-----multiplate-develop.588",
"LegacySemVer": "23.9.2-----multiplate-de588",
"LegacySemVerPadded": "23.9.2-----multiplate-d0588",
"AssemblySemVer": "23.9.2.588",
"AssemblySemFileVer": "23.9.2.588",
"FullSemVer": "23.9.2-----multiplate-develop.588",
"InformationalVersion": "23.9.2-----multiplate-develop.588+Branch.----multiplate-develop.Sha.a5a61abb6afe3222e126eaf3cd2f3b3bf109b405",
"BranchName": "多片机/multiplate-develop",
"EscapedBranchName": "----multiplate-develop",
"Sha": "4c18bc3c1736a4751da6f6c99bfdb84962b7ed2c",
"ShortSha": "4c18bc3",
"NuGetVersionV2": "23.9.2-----multiplate-d0587",
"NuGetVersion": "23.9.2-----multiplate-d0587",
"NuGetPreReleaseTagV2": "----multiplate-d0587",
"NuGetPreReleaseTag": "----multiplate-d0587",
"Sha": "a5a61abb6afe3222e126eaf3cd2f3b3bf109b405",
"ShortSha": "a5a61ab",
"NuGetVersionV2": "23.9.2-----multiplate-d0588",
"NuGetVersion": "23.9.2-----multiplate-d0588",
"NuGetPreReleaseTagV2": "----multiplate-d0588",
"NuGetPreReleaseTag": "----multiplate-d0588",
"VersionSourceSha": "c29389314a6af8abb1346677a53be6fe6b00379e",
"CommitsSinceVersionSource": 587,
"CommitsSinceVersionSourcePadded": "0587",
"UncommittedChanges": 0,
"CommitDate": "2024-06-24"
"CommitsSinceVersionSource": 588,
"CommitsSinceVersionSourcePadded": "0588",
"UncommittedChanges": 25,
"CommitDate": "2024-06-25"
}

View File

@ -2,34 +2,34 @@
"Major": 23,
"Minor": 9,
"Patch": 2,
"PreReleaseTag": "----multiplate-develop.587",
"PreReleaseTagWithDash": "-----multiplate-develop.587",
"PreReleaseTag": "----multiplate-develop.588",
"PreReleaseTagWithDash": "-----multiplate-develop.588",
"PreReleaseLabel": "----multiplate-develop",
"PreReleaseLabelWithDash": "-----multiplate-develop",
"PreReleaseNumber": 587,
"WeightedPreReleaseNumber": 587,
"PreReleaseNumber": 588,
"WeightedPreReleaseNumber": 588,
"BuildMetaData": null,
"BuildMetaDataPadded": "",
"FullBuildMetaData": "Branch.----multiplate-develop.Sha.4c18bc3c1736a4751da6f6c99bfdb84962b7ed2c",
"FullBuildMetaData": "Branch.----multiplate-develop.Sha.a5a61abb6afe3222e126eaf3cd2f3b3bf109b405",
"MajorMinorPatch": "23.9.2",
"SemVer": "23.9.2-----multiplate-develop.587",
"LegacySemVer": "23.9.2-----multiplate-de587",
"LegacySemVerPadded": "23.9.2-----multiplate-d0587",
"AssemblySemVer": "23.9.2.587",
"AssemblySemFileVer": "23.9.2.587",
"FullSemVer": "23.9.2-----multiplate-develop.587",
"InformationalVersion": "23.9.2-----multiplate-develop.587+Branch.----multiplate-develop.Sha.4c18bc3c1736a4751da6f6c99bfdb84962b7ed2c",
"SemVer": "23.9.2-----multiplate-develop.588",
"LegacySemVer": "23.9.2-----multiplate-de588",
"LegacySemVerPadded": "23.9.2-----multiplate-d0588",
"AssemblySemVer": "23.9.2.588",
"AssemblySemFileVer": "23.9.2.588",
"FullSemVer": "23.9.2-----multiplate-develop.588",
"InformationalVersion": "23.9.2-----multiplate-develop.588+Branch.----multiplate-develop.Sha.a5a61abb6afe3222e126eaf3cd2f3b3bf109b405",
"BranchName": "多片机/multiplate-develop",
"EscapedBranchName": "----multiplate-develop",
"Sha": "4c18bc3c1736a4751da6f6c99bfdb84962b7ed2c",
"ShortSha": "4c18bc3",
"NuGetVersionV2": "23.9.2-----multiplate-d0587",
"NuGetVersion": "23.9.2-----multiplate-d0587",
"NuGetPreReleaseTagV2": "----multiplate-d0587",
"NuGetPreReleaseTag": "----multiplate-d0587",
"Sha": "a5a61abb6afe3222e126eaf3cd2f3b3bf109b405",
"ShortSha": "a5a61ab",
"NuGetVersionV2": "23.9.2-----multiplate-d0588",
"NuGetVersion": "23.9.2-----multiplate-d0588",
"NuGetPreReleaseTagV2": "----multiplate-d0588",
"NuGetPreReleaseTag": "----multiplate-d0588",
"VersionSourceSha": "c29389314a6af8abb1346677a53be6fe6b00379e",
"CommitsSinceVersionSource": 587,
"CommitsSinceVersionSourcePadded": "0587",
"UncommittedChanges": 0,
"CommitDate": "2024-06-24"
"CommitsSinceVersionSource": 588,
"CommitsSinceVersionSourcePadded": "0588",
"UncommittedChanges": 25,
"CommitDate": "2024-06-25"
}

View File

@ -147,6 +147,7 @@
<DI_ITEM Index="209" Name="DI_DORRefillFB(V76)" BufferOffset="209" Addr="209" Description="" />
<DI_ITEM Index="210" Name="DI_GasBoxVentBypass(V25)" BufferOffset="210" Addr="210" Description="" />
<DI_ITEM Index="212" Name="DI_PumpBypassFB(V27)" BufferOffset="212" Addr="212" Description="" />
<DI_ITEM Index="214" Name="DI_CarryGasFinalFB(V97)" BufferOffset="214" Addr="214" Description="" />
<DI_ITEM Index="216" Name="DI_PSUEnableFB" BufferOffset="216" Addr="216" Description="" />
<DI_ITEM Index="217" Name="DI_InnerHeaterEnableFB" BufferOffset="217" Addr="217" Description="" />
<DI_ITEM Index="218" Name="DI_MiddleHeaterEnableFB" BufferOffset="218" Addr="218" Description="" />
@ -164,7 +165,6 @@
<DI_ITEM Index="234" Name="DI_SHLidSwingUnlockFB" BufferOffset="234" Addr="234" Description="" />
<DI_ITEM Index="235" Name="DI_ChamMoveBodyBrakerForwardFB" BufferOffset="235" Addr="235" Description="" />
<DI_ITEM Index="236" Name="DI_ChamMoveBodyBrakerBackwardFB" BufferOffset="236" Addr="236" Description="" />
<DI_ITEM Index="241" Name="DI_CarryGasFinalFB(V97)" BufferOffset="241" Addr="241" Description="" />
<DI_ITEM Index="243" Name="DI_MiddleLidLoosenFB" BufferOffset="243" Addr="243" Description="" />
<DI_ITEM Index="244" Name="DI_MiddleLidTightenFB" BufferOffset="244" Addr="244" Description="" />
<DI_ITEM Index="245" Name="DI_MiddleLidSwingLockFB" BufferOffset="245" Addr="245" Description="" />

View File

@ -2,34 +2,34 @@
"Major": 23,
"Minor": 9,
"Patch": 2,
"PreReleaseTag": "----multiplate-develop.587",
"PreReleaseTagWithDash": "-----multiplate-develop.587",
"PreReleaseTag": "----multiplate-develop.588",
"PreReleaseTagWithDash": "-----multiplate-develop.588",
"PreReleaseLabel": "----multiplate-develop",
"PreReleaseLabelWithDash": "-----multiplate-develop",
"PreReleaseNumber": 587,
"WeightedPreReleaseNumber": 587,
"PreReleaseNumber": 588,
"WeightedPreReleaseNumber": 588,
"BuildMetaData": null,
"BuildMetaDataPadded": "",
"FullBuildMetaData": "Branch.----multiplate-develop.Sha.4c18bc3c1736a4751da6f6c99bfdb84962b7ed2c",
"FullBuildMetaData": "Branch.----multiplate-develop.Sha.a5a61abb6afe3222e126eaf3cd2f3b3bf109b405",
"MajorMinorPatch": "23.9.2",
"SemVer": "23.9.2-----multiplate-develop.587",
"LegacySemVer": "23.9.2-----multiplate-de587",
"LegacySemVerPadded": "23.9.2-----multiplate-d0587",
"AssemblySemVer": "23.9.2.587",
"AssemblySemFileVer": "23.9.2.587",
"FullSemVer": "23.9.2-----multiplate-develop.587",
"InformationalVersion": "23.9.2-----multiplate-develop.587+Branch.----multiplate-develop.Sha.4c18bc3c1736a4751da6f6c99bfdb84962b7ed2c",
"SemVer": "23.9.2-----multiplate-develop.588",
"LegacySemVer": "23.9.2-----multiplate-de588",
"LegacySemVerPadded": "23.9.2-----multiplate-d0588",
"AssemblySemVer": "23.9.2.588",
"AssemblySemFileVer": "23.9.2.588",
"FullSemVer": "23.9.2-----multiplate-develop.588",
"InformationalVersion": "23.9.2-----multiplate-develop.588+Branch.----multiplate-develop.Sha.a5a61abb6afe3222e126eaf3cd2f3b3bf109b405",
"BranchName": "多片机/multiplate-develop",
"EscapedBranchName": "----multiplate-develop",
"Sha": "4c18bc3c1736a4751da6f6c99bfdb84962b7ed2c",
"ShortSha": "4c18bc3",
"NuGetVersionV2": "23.9.2-----multiplate-d0587",
"NuGetVersion": "23.9.2-----multiplate-d0587",
"NuGetPreReleaseTagV2": "----multiplate-d0587",
"NuGetPreReleaseTag": "----multiplate-d0587",
"Sha": "a5a61abb6afe3222e126eaf3cd2f3b3bf109b405",
"ShortSha": "a5a61ab",
"NuGetVersionV2": "23.9.2-----multiplate-d0588",
"NuGetVersion": "23.9.2-----multiplate-d0588",
"NuGetPreReleaseTagV2": "----multiplate-d0588",
"NuGetPreReleaseTag": "----multiplate-d0588",
"VersionSourceSha": "c29389314a6af8abb1346677a53be6fe6b00379e",
"CommitsSinceVersionSource": 587,
"CommitsSinceVersionSourcePadded": "0587",
"UncommittedChanges": 0,
"CommitDate": "2024-06-24"
"CommitsSinceVersionSource": 588,
"CommitsSinceVersionSourcePadded": "0588",
"UncommittedChanges": 25,
"CommitDate": "2024-06-25"
}

View File

@ -62,7 +62,7 @@
Source="/SicUI;component/Themes/Images/parts/bodymove/bottom3.png" />
</Canvas>
<Canvas Canvas.Left="395" Canvas.Top="337">
<Canvas Canvas.Left="395" Canvas.Top="337" Visibility="Collapsed">
<common:AxisCanvas x:Name="canvasRing2">
<Image
Width="206"
@ -76,9 +76,10 @@
Canvas.Top="316"
Width="327"
Height="123"
Visibility="Collapsed"
Source="/SicUI;component/Themes/Images/parts/bodymove/Fixed.png" />
<Canvas Canvas.Left="395" Canvas.Top="357">
<Canvas Canvas.Left="395" Canvas.Top="357" Visibility="Collapsed">
<common:AxisCanvas x:Name="canvasRing">
<Image
Width="206"

View File

@ -24,7 +24,7 @@
<lid:BodyLid
Canvas.Left="0"
Canvas.Top="50"
Canvas.Top="120"
ChamberBodyGroup="{Binding SelectedMoveBodyGroup}"
ChamberIsDown="{Binding IsChamMoveBodyDown}"
ChamberIsEnd="{Binding IsChamMoveBodyEnd}"

View File

@ -1379,6 +1379,14 @@
</i:Interaction.Triggers>
</Button>
<deviceControl:AITSensor
HorizontalAlignment="Center"
VerticalAlignment="Center"
CustomColorOff="Gray"
CustomColorOn="Lime"
IsCustomRender="True"
LightOnValue="{Binding IsServeHomeDone}" />
<Button
Width="120"
Height="25"
@ -1394,6 +1402,14 @@
</i:EventTrigger>
</i:Interaction.Triggers>
</Button>
<deviceControl:AITSensor
HorizontalAlignment="Center"
VerticalAlignment="Center"
CustomColorOff="Gray"
CustomColorOn="Lime"
IsCustomRender="True"
LightOnValue="{Binding IsMoveDone}" />
</StackPanel>
@ -2990,6 +3006,7 @@
<RowDefinition Height="32" />
<RowDefinition Height="32" />
<RowDefinition Height="32" />
<RowDefinition Height="32" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="90" />
@ -3471,6 +3488,95 @@
</StackPanel>
</Border>
<Border
Grid.Row="7"
Padding="5,1,0,1"
Background="{DynamicResource Table_BG_Title}"
BorderBrush="{DynamicResource Table_BD}"
BorderThickness="1,0,1,1">
<TextBlock
VerticalAlignment="Center"
lex:ResxLocalizationProvider.DefaultDictionary="lang_tmview"
FontFamily="Arial"
FontSize="12"
Foreground="{DynamicResource FG_Black}"
Text="Robot Tray"
TextWrapping="Wrap" />
</Border>
<Border
Grid.Row="7"
Grid.Column="1"
Padding="5,1,0,1"
Background="{DynamicResource Table_BG_Content}"
BorderBrush="{DynamicResource Table_BD}"
BorderThickness="0,0,1,1">
<ComboBox
Width="90"
Height="25"
Name="cmb_RobotLoads"
ItemsSource="{Binding RobotLoads}"
SelectedItem="{Binding SelectRobotLoad}" />
</Border>
<Border
Grid.Row="7"
Grid.Column="2"
Padding="5,1,0,1"
Background="{DynamicResource Table_BG_Content}"
BorderBrush="{DynamicResource Table_BD}"
BorderThickness="0,0,0,1">
<StackPanel Orientation="Horizontal">
<Button
Width="90"
Height="25"
Margin="10,0"
Content="Robot Set"
IsEnabled="{Binding CheckOffline}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<cal:ActionMessage MethodName="RobotSetParameter"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</Button>
<Button
Width="90"
Height="25"
Margin="10,0"
Content="Robot Read"
IsEnabled="{Binding CheckOffline}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<cal:ActionMessage MethodName="RobotReadParameter"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</Button>
<TextBlock
VerticalAlignment="Center"
Margin="0,0,5,0"
lex:ResxLocalizationProvider.DefaultDictionary="lang_terms"
FontFamily="Arial"
FontSize="12"
Foreground="{DynamicResource FG_Black}"
Text="Tray"
TextAlignment="Center"
TextWrapping="Wrap" />
<deviceControl:AITSensor
HorizontalAlignment="Center"
VerticalAlignment="Center"
CustomColorOff="Gray"
CustomColorOn="Lime"
IsCustomRender="True"
LightOnValue="{Binding IsTmRobotHaveWafer}" />
</StackPanel>
</Border>
</Grid>
<Grid Margin="0,-20" Visibility="{Binding IsBufferInstalled, Converter={StaticResource BoolVisibilityConverter}}">

View File

@ -14,6 +14,7 @@ using Aitex.Core.RT.SCCore;
using Aitex.Core.RT.DataCenter;
using MECF.Framework.Common.DBCore;
using System;
using MECF.Framework.RT.EquipmentLibrary.HardwareUnits.Robots;
namespace SicUI.Client.Models.Platform.TM
{
@ -264,6 +265,15 @@ namespace SicUI.Client.Models.Platform.TM
return ModuleStatusBackground.GetStatusBackground(status);
}
private List<string> _robotLoads=new List<string>(){"ON","OFF"};
public List<string> RobotLoads
{
get { return _robotLoads; }
set { _robotLoads = value; NotifyOfPropertyChange("RobotLoads"); }
}
public string SelectRobotLoad { get; set; } = "ON";
private List<string> _modules = new List<string>() { "PM1", "PM2", "LoadLock", "UnLoad", "Buffer.01", "Buffer.02", "Buffer.03" };
public List<string> Modules
@ -319,6 +329,13 @@ namespace SicUI.Client.Models.Platform.TM
[Subscription("Load.Rotation.CurPos")]
public double LdRotationCurPos { get; set; }
[Subscription("Load.Rotation.IsMoveDone")]
public bool IsMoveDone { get; set; }
[Subscription("Load.Rotation.IsServeHomeDone")]
public bool IsServeHomeDone { get; set; }
[Subscription("TM.LoadSlowPump.DeviceData")]
public AITValveData LLSlowRough { get; set; }
@ -626,6 +643,10 @@ namespace SicUI.Client.Models.Platform.TM
#endregion
#region TM Robot
[Subscription("TMRobot.IsHaveWafer")]
public bool IsTmRobotHaveWafer { get; set; }
public void TMRobot_Home()
{
TMProvider.Instance.TMRobot_Home();
@ -1084,7 +1105,15 @@ namespace SicUI.Client.Models.Platform.TM
InvokeClient.Instance.Service.DoOperation($"{module}.Separate");
}
public void RobotSetParameter()
{
InvokeClient.Instance.Service.DoOperation($"TMRobot.RobotArmBlade1SetParameter", new object[] { "SetLoad", SelectRobotLoad =="ON" ? true:false});
}
public void RobotReadParameter()
{
InvokeClient.Instance.Service.DoOperation($"TMRobot.RobotArmBlade1ReadParameter", new object[] { "QueryWaferPresent"});
}
#endregion
#region ConfinementRing

View File

@ -1432,12 +1432,10 @@
Background="{DynamicResource Table_BG_Content}"
BorderBrush="{DynamicResource Table_BD}"
BorderThickness="0,0,1,1">
<Button
Margin="5,2"
Content="Move">
<Button Margin="5,2" Content="Move">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<cal:ActionMessage MethodName="SpindleSpeedRun">
<cal:ActionMessage MethodName="SetActualSpeed">
<cal:Parameter Value="{Binding Path=Text, ElementName=txtActualSpeed}" />
</cal:ActionMessage>
</i:EventTrigger>
@ -1494,7 +1492,7 @@
<Button Margin="5,2" Content="Move">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<cal:ActionMessage MethodName="SpindleLoadAngleRun">
<cal:ActionMessage MethodName="LoadAngleSet">
<cal:Parameter Value="{Binding Path=Text, ElementName=txtLoadAngleSet}" />
</cal:ActionMessage>
</i:EventTrigger>
@ -1526,7 +1524,7 @@
<Button Margin="5,2" Content="Move">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<cal:ActionMessage MethodName="SpindleUnloadAngleRun">
<cal:ActionMessage MethodName="UnloadAngleSet">
<cal:Parameter Value="{Binding Path=Text, ElementName=txtUnloadAngleSet}" />
</cal:ActionMessage>
</i:EventTrigger>
@ -1555,10 +1553,10 @@
<ctrl:TextBoxEx
x:Name="txtLoadAngleSet"
Height="22"
EditBoxMode="SignInteger"
EditBoxMode="Decimal"
FontFamily="Arial"
FontSize="14"
MaxValue="360"
MaxValue="0"
MinValue="-360"
Text="0.0"
ToolTip="相对位置设定"
@ -1585,11 +1583,11 @@
<ctrl:TextBoxEx
Name="txtUnloadAngleSet"
Height="22"
EditBoxMode="SignInteger"
EditBoxMode="Decimal"
FontFamily="Arial"
FontSize="14"
MaxValue="0"
MinValue="-360"
MaxValue="360"
MinValue="0"
Text="0.0"
ToolTip="相对位置设定"
Validation.ErrorTemplate="{x:Null}" />

View File

@ -75,7 +75,7 @@ namespace SicUI.Models.PMs
public float BottomLocation { get; set; }
public float RingLocation { get; set; }
private List<string> _moveBodyGroup = new List<string>() { "ShowHead", "Middle" };
private List<string> _moveBodyGroup = new List<string>() { "ShowHead" };
public List<string> MoveBodyGroup
{
get { return _moveBodyGroup; }
@ -328,11 +328,11 @@ namespace SicUI.Models.PMs
#region EnableProperties
public bool IsActionEnable => false;
private bool OpenSH => SelectedMoveBodyGroup.Contains("ShowHead");
private bool OpenMiddle => SelectedMoveBodyGroup.Contains("Middle");
//private bool OpenMiddle => SelectedMoveBodyGroup.Contains("Middle");
public bool EnableSelectLid => IsRemoteFeceback && IsChamMoveBodyFront && IsChamMoveBodyDown && IsSHLidClosed ;
public bool EnableOpen => IsService && !IsOnline && IsRemoteFeceback && IsChamMoveBodyFront && IsChamMoveBodyDown && (IsSHLidClosed );
public bool EnableClose => IsService && !IsOnline && IsRemoteFeceback && IsChamMoveBodyFront && IsChamMoveBodyDown && IsSHLidSwingUnlock ;
public bool EnableOpen => IsService && !IsOnline && IsRemoteFeceback && IsChamMoveBodyFront && (IsSHLidClosed );
public bool EnableClose => IsService && !IsOnline && IsRemoteFeceback && IsChamMoveBodyFront && IsSHLidSwingUnlock ;
public bool EnableUpDownEnable => ((!UpDownEnableFaceback && !IsChamMoveBodyDown) || IsChamMoveBodyDown) && (IsChamMoveBodyFront && IsGasConnectorLoosen && PMIsIdle && !IsRemoteFeceback && IsSHLidSwingUnlock);
public bool EnableUpLatch => IsChamMoveBodyFront && PMIsIdle && IsRemoteFeceback && IsGasConnectorLoosen && IsSHLidSwingUnlock;
@ -340,19 +340,19 @@ namespace SicUI.Models.PMs
public bool EnableBackwardLatch => IsChamMoveBodyUp && IsChamMoveBodyFront && IsGasConnectorLoosen && !BackwardLatchFeedBack && IsRemoteFeceback;
public bool EnableSHTighten => OpenSH && IsSHLidSwingLock && IsSHLidLoosen && PMIsIdle && IsRemoteFeceback;
public bool EnableSHLoosen => OpenSH && IsSHLidTighten && IsChamMoveBodyDown && IsChamMoveBodyFront && PMIsIdle && !IsSHLidLoosen && IsGasConnectorLoosen && IsRemoteFeceback;
public bool EnableSHSwingLock => OpenSH && IsSHLidLoosen && IsChamMoveBodyDown && IsChamMoveBodyFront && PMIsIdle && IsRemoteFeceback;
public bool EnableSHLoosen => OpenSH && IsSHLidTighten && IsChamMoveBodyFront && PMIsIdle && !IsSHLidLoosen && IsGasConnectorLoosen && IsRemoteFeceback;
public bool EnableSHSwingLock => OpenSH && IsSHLidLoosen && IsChamMoveBodyFront && PMIsIdle && IsRemoteFeceback;
public bool EnableSHSwingUnlock => OpenSH && IsSHLidLoosen && PMIsIdle && IsChamMoveBodyDown && IsChamMoveBodyFront && IsRemoteFeceback;
public bool EnableMiddleTighten => OpenMiddle && PMIsIdle && IsRemoteFeceback;
public bool EnableMiddleLoosen => OpenMiddle && IsChamMoveBodyDown && IsChamMoveBodyFront && PMIsIdle && !IsSHLidLoosen && IsGasConnectorLoosen && IsRemoteFeceback;
public bool EnableMiddleSwingLock => OpenMiddle && IsChamMoveBodyDown && IsChamMoveBodyFront && PMIsIdle && IsRemoteFeceback;
public bool EnableMiddleSwingUnlock => OpenMiddle && PMIsIdle && IsRemoteFeceback && IsChamMoveBodyDown && IsChamMoveBodyFront;
//public bool EnableMiddleTighten => OpenMiddle && PMIsIdle && IsRemoteFeceback;
//public bool EnableMiddleLoosen => OpenMiddle && IsChamMoveBodyDown && IsChamMoveBodyFront && PMIsIdle && !IsSHLidLoosen && IsGasConnectorLoosen && IsRemoteFeceback;
//public bool EnableMiddleSwingLock => OpenMiddle && IsChamMoveBodyDown && IsChamMoveBodyFront && PMIsIdle && IsRemoteFeceback;
//public bool EnableMiddleSwingUnlock => OpenMiddle && PMIsIdle && IsRemoteFeceback && IsChamMoveBodyDown && IsChamMoveBodyFront;
public bool EnableGasConnectorLoosen => IsChamMoveBodyFront && IsChamMoveBodyDown && PMIsIdle && IsGasConnectorTighten;
public bool EnableGasConnectorTighten => IsGasConnectorLoosen && PMIsIdle && IsChamMoveBodyFront && IsChamMoveBodyDown && IsSHLidTighten;
public bool EnableGasConnectorTighten => IsGasConnectorLoosen && PMIsIdle && IsChamMoveBodyFront && IsSHLidTighten;
public bool EnableMoveBodyOpen => IsChamMoveBodyDown && PMIsIdle && !IsSHLidLoosen ;
public bool EnableMoveBodyClose => !IsChamMoveBodyDown && PMIsIdle;
@ -462,17 +462,17 @@ namespace SicUI.Models.PMs
public void SetActualSpeed(object data)
{
SetPMServoValue(data, 1000, 0, "SetActualSpeed");
SetPMServoValue(data, 1000, 0, "SpindleSpeedRun");
}
public void LoadAngleSet(object data)
{
SetPMServoValue(data, 360, -360, "SpindleLoadAngleSet");
SetPMServoValue(data, 0, -360, "SpindleLoadAngleRun");
}
public void UnloadAngleSet(object data)
{
SetPMServoValue(data, 0, -360, "SpindleUnloadAngleSet");
SetPMServoValue(data, 360, 0, "SpindleUnloadAngleRun");
}
private void SetPMServoValue(object data, int max,int min,string name)
@ -494,19 +494,19 @@ namespace SicUI.Models.PMs
InvokeClient.Instance.Service.DoOperation($"{SystemName}.PMServo.{name}", value);
}
public void SpindleSpeedRun(string cmd)
{
InvokeClient.Instance.Service.DoOperation($"{SystemName}.PMServo.SpindleSpeedRun", Convert.ToSingle(cmd));
}
//public void SpindleSpeedRun(string cmd)
//{
// InvokeClient.Instance.Service.DoOperation($"{SystemName}.PMServo.SpindleSpeedRun", Convert.ToSingle(cmd));
//}
public void SpindleLoadAngleRun(string cmd)
{
InvokeClient.Instance.Service.DoOperation($"{SystemName}.PMServo.SpindleLoadAngleRun", Convert.ToSingle(cmd));
}
public void SpindleUnloadAngleRun(string cmd)
{
InvokeClient.Instance.Service.DoOperation($"{SystemName}.PMServo.SpindleUnloadAngleRun", Convert.ToSingle(cmd));
}
//public void SpindleLoadAngleRun(string cmd)
//{
// InvokeClient.Instance.Service.DoOperation($"{SystemName}.PMServo.SpindleLoadAngleRun", Convert.ToSingle(cmd));
//}
//public void SpindleUnloadAngleRun(string cmd)
//{
// InvokeClient.Instance.Service.DoOperation($"{SystemName}.PMServo.SpindleUnloadAngleRun", Convert.ToSingle(cmd));
//}
#endregion

View File

@ -4814,7 +4814,7 @@
DefaultOpen="{Binding V52s.DefaultValue}"
HideBlinding="True"
OnOff="{Binding V52s.Feedback}"
Tag="V51s"
Tag="V52s"
ValveDirection="ToLeft"
ValveName="{Binding V52s.DisplayName}" />
<controlRT:ValveBig
@ -5423,7 +5423,7 @@
HorizontalAlignment="Left"
VerticalAlignment="Center"
Command="{Binding CmdSetMfcFlow}"
DeviceData="{Binding Mfc13Data}"
DeviceData="{Binding Mfc14Data}"
OperationName="SetMfcFlowValue" />
<controlRT:AnalogControl2
Canvas.Left="1042"
@ -5471,7 +5471,7 @@
HorizontalAlignment="Left"
VerticalAlignment="Center"
Command="{Binding CmdSetMfcFlow}"
DeviceData="{Binding Mfc26Data}"
DeviceData="{Binding Mfc28Data}"
OperationName="SetMfcFlowValue" />
<controlRT:AnalogControl2
@ -5568,7 +5568,7 @@
HorizontalAlignment="Left"
VerticalAlignment="Center"
Command="{Binding CmdSetMfcFlow}"
DeviceData="{Binding Mfc28Data}"
DeviceData="{Binding Mfc29Data}"
OperationName="SetMfcFlowValue" />
<controlRT:AnalogControl2
Canvas.Left="1150"
@ -5577,7 +5577,7 @@
HorizontalAlignment="Left"
VerticalAlignment="Center"
Command="{Binding CmdSetMfcFlow}"
DeviceData="{Binding Mfc29Data}"
DeviceData="{Binding Mfc31Data}"
OperationName="SetMfcFlowValue" />
<!--<controlRT:AnalogControl2 Visibility="Hidden" DeviceData="{Binding Mfc30Data}" Command="{Binding CmdSetMfcFlow}" OperationName="SetMfcFlowValue" Canvas.Left="1123" Canvas.Top="312" Width="62" />-->

View File

@ -2,34 +2,34 @@
"Major": 23,
"Minor": 9,
"Patch": 2,
"PreReleaseTag": "----multiplate-develop.587",
"PreReleaseTagWithDash": "-----multiplate-develop.587",
"PreReleaseTag": "----multiplate-develop.588",
"PreReleaseTagWithDash": "-----multiplate-develop.588",
"PreReleaseLabel": "----multiplate-develop",
"PreReleaseLabelWithDash": "-----multiplate-develop",
"PreReleaseNumber": 587,
"WeightedPreReleaseNumber": 587,
"PreReleaseNumber": 588,
"WeightedPreReleaseNumber": 588,
"BuildMetaData": null,
"BuildMetaDataPadded": "",
"FullBuildMetaData": "Branch.----multiplate-develop.Sha.4c18bc3c1736a4751da6f6c99bfdb84962b7ed2c",
"FullBuildMetaData": "Branch.----multiplate-develop.Sha.a5a61abb6afe3222e126eaf3cd2f3b3bf109b405",
"MajorMinorPatch": "23.9.2",
"SemVer": "23.9.2-----multiplate-develop.587",
"LegacySemVer": "23.9.2-----multiplate-de587",
"LegacySemVerPadded": "23.9.2-----multiplate-d0587",
"AssemblySemVer": "23.9.2.587",
"AssemblySemFileVer": "23.9.2.587",
"FullSemVer": "23.9.2-----multiplate-develop.587",
"InformationalVersion": "23.9.2-----multiplate-develop.587+Branch.----multiplate-develop.Sha.4c18bc3c1736a4751da6f6c99bfdb84962b7ed2c",
"SemVer": "23.9.2-----multiplate-develop.588",
"LegacySemVer": "23.9.2-----multiplate-de588",
"LegacySemVerPadded": "23.9.2-----multiplate-d0588",
"AssemblySemVer": "23.9.2.588",
"AssemblySemFileVer": "23.9.2.588",
"FullSemVer": "23.9.2-----multiplate-develop.588",
"InformationalVersion": "23.9.2-----multiplate-develop.588+Branch.----multiplate-develop.Sha.a5a61abb6afe3222e126eaf3cd2f3b3bf109b405",
"BranchName": "多片机/multiplate-develop",
"EscapedBranchName": "----multiplate-develop",
"Sha": "4c18bc3c1736a4751da6f6c99bfdb84962b7ed2c",
"ShortSha": "4c18bc3",
"NuGetVersionV2": "23.9.2-----multiplate-d0587",
"NuGetVersion": "23.9.2-----multiplate-d0587",
"NuGetPreReleaseTagV2": "----multiplate-d0587",
"NuGetPreReleaseTag": "----multiplate-d0587",
"Sha": "a5a61abb6afe3222e126eaf3cd2f3b3bf109b405",
"ShortSha": "a5a61ab",
"NuGetVersionV2": "23.9.2-----multiplate-d0588",
"NuGetVersion": "23.9.2-----multiplate-d0588",
"NuGetPreReleaseTagV2": "----multiplate-d0588",
"NuGetPreReleaseTag": "----multiplate-d0588",
"VersionSourceSha": "c29389314a6af8abb1346677a53be6fe6b00379e",
"CommitsSinceVersionSource": 587,
"CommitsSinceVersionSourcePadded": "0587",
"UncommittedChanges": 0,
"CommitDate": "2024-06-24"
"CommitsSinceVersionSource": 588,
"CommitsSinceVersionSourcePadded": "0588",
"UncommittedChanges": 25,
"CommitDate": "2024-06-25"
}

Binary file not shown.