Change E-Stop so that it can also work with one string

- Also optimized CV charging
This commit is contained in:
Matthias Heisig
2025-10-07 16:23:37 +02:00
parent 8ea7fd74e2
commit eaaa2371e8
16 changed files with 689 additions and 346 deletions

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<GlobalVariables Crc="2758743379" Id="12c44f92-6465-47ce-89f7-613cad033491" FileFormatVersion="1.0">
<GlobalVariables Crc="3854622282" Id="12c44f92-6465-47ce-89f7-613cad033491" FileFormatVersion="1.0">
<Variable Id="b420cc6c-39c2-4c75-bb48-acf00ba7ef01">
<Name>xNotHaltSchaltschrankCh1</Name>
<SourceUsages>
@@ -148,71 +148,14 @@
</AliasDeviceIoUsage>
</SourceUsages>
<TargetUsages>
<FbPortUsage Id="ff5ea199-1009-4785-8d72-be95f6550c6f">
<FbPortUsage Id="346a3822-ed04-4fde-b077-52f1bf6c8a13">
<ModelElementId>f40fa17f-ee60-40e6-afd0-a4ff3f333ac1</ModelElementId>
</FbPortUsage>
<FbPortUsage Id="8a6ba4fa-a957-4c48-bd73-bf304f69c43f">
<ModelElementId>c5035e66-889e-4017-b2b8-035e1758dbe6</ModelElementId>
<FbPortUsage Id="a31f1a6e-c6d7-4f76-84c0-593dc80c2942">
<ModelElementId>497dfd32-770c-4ea1-8d8b-42400c79a8b8</ModelElementId>
</FbPortUsage>
</TargetUsages>
</Variable>
<Variable Id="3666207e-b87b-470a-a00e-dc8cf9a39624">
<Name>xNotHaltRegalString1Ch1</Name>
<SourceUsages>
<AliasDeviceIoUsage Id="90f72321-a8ee-4498-b2f3-5e6ee9fe60a1">
<SdsId>26</SdsId>
<ChannelId>2</ChannelId>
<FunctionId>1327742742</FunctionId>
</AliasDeviceIoUsage>
</SourceUsages>
<TargetUsages>
<FbPortUsage Id="70132f8b-086b-47c0-878a-80b0545c1054">
<ModelElementId>0208ec07-4e73-4e98-82f9-f5ec1fc51646</ModelElementId>
</FbPortUsage>
</TargetUsages>
</Variable>
<Variable Id="b89e5a29-9951-4f77-87d6-c370b60789c8">
<Name>xNotHaltRegalString1Ch2</Name>
<SourceUsages>
<AliasDeviceIoUsage Id="43aa494e-e8e2-4162-a0b3-60c87a4f58eb">
<SdsId>26</SdsId>
<ChannelId>3</ChannelId>
<FunctionId>1327939349</FunctionId>
</AliasDeviceIoUsage>
</SourceUsages>
<TargetUsages>
<FbPortUsage Id="9f457ba6-1e36-4f06-a2aa-2444fbd3f314">
<ModelElementId>5ae9a84e-e023-421e-9861-820a4c425bb2</ModelElementId>
</FbPortUsage>
</TargetUsages>
</Variable>
<Variable Id="73fa5b99-a58a-4c74-817d-5d26701aa3d8">
<Name>xNotHaltRegalString2Ch1</Name>
<SourceUsages>
<AliasDeviceIoUsage Id="162771af-9e00-4ce6-a509-dad6107718e1">
<SdsId>27</SdsId>
<ChannelId>2</ChannelId>
<FunctionId>1327742742</FunctionId>
</AliasDeviceIoUsage>
</SourceUsages>
<TargetUsages>
<FbPortUsage Id="d2a06f2c-b1b8-43ce-a402-544839fc1e43">
<ModelElementId>53a11715-872f-4c57-98dd-0522c0f608a5</ModelElementId>
</FbPortUsage>
</TargetUsages>
</Variable>
<Variable Id="eb89a43f-f715-4c55-9198-694215469e51">
<Name>xNotHaltRegalString2Ch2</Name>
<SourceUsages>
<AliasDeviceIoUsage Id="98dd3d02-59d1-43b2-969b-0267fb3be628">
<SdsId>27</SdsId>
<ChannelId>3</ChannelId>
<FunctionId>1327939349</FunctionId>
</AliasDeviceIoUsage>
</SourceUsages>
<TargetUsages>
<FbPortUsage Id="d3967535-7b6b-4dcb-bd50-1c8da7bd0651">
<ModelElementId>e4e16c14-19bb-47d4-95cc-878ecfaa10b1</ModelElementId>
<FbPortUsage Id="81e8678c-cf7d-43d1-b14e-3c90fcb3e005">
<ModelElementId>336968a3-e5f5-4dd8-a188-11d2e30ce80e</ModelElementId>
</FbPortUsage>
</TargetUsages>
</Variable>
@@ -276,4 +219,56 @@
</FbPortUsage>
</TargetUsages>
</Variable>
<Variable Id="470a26a4-f34a-41f5-9dc7-8b857cf4fdda">
<Name>xNotHaltRegalString1Ok</Name>
<SourceUsages>
<FbPortUsage Id="544b610d-0c8e-41b0-b22a-50781eaa3c73">
<ModelElementId>5257f24c-a541-4d7e-a17c-47c0eb1c0658</ModelElementId>
</FbPortUsage>
</SourceUsages>
<TargetUsages>
<FbPortUsage Id="8f55662e-9514-4f80-adfc-74c7c488fc94">
<ModelElementId>34590447-ed64-453b-a1b9-a2c43b9ea301</ModelElementId>
</FbPortUsage>
</TargetUsages>
</Variable>
<Variable Id="a206d633-4703-4d1d-b69b-7558aa4b78f1">
<Name>xNotHaltRegalString2Ok</Name>
<SourceUsages>
<FbPortUsage Id="276c6fe1-06ba-41a9-a7af-168bfadb8f51">
<ModelElementId>e592f68f-b4c4-4a31-9939-cfe184190178</ModelElementId>
</FbPortUsage>
</SourceUsages>
<TargetUsages>
<FbPortUsage Id="ef267542-db9d-4032-acde-bc7a414a4659">
<ModelElementId>7d674340-ae8f-4834-bfc9-50845e6344e7</ModelElementId>
</FbPortUsage>
</TargetUsages>
</Variable>
<Variable Id="34175068-eb12-4ad7-ac89-538b91b7f333">
<Name>xNotHaltRegalString1OkDelay</Name>
<SourceUsages>
<FbPortUsage Id="b1801235-cc04-43da-897d-e7aff47d4166">
<ModelElementId>3f849045-0b93-4743-8e4f-168a6bcf5af1</ModelElementId>
</FbPortUsage>
</SourceUsages>
<TargetUsages>
<FbPortUsage Id="9415cf4c-d4cb-402b-a172-9418d845837c">
<ModelElementId>437b7852-b2f1-47fa-8d91-5eb8a49ea9f6</ModelElementId>
</FbPortUsage>
</TargetUsages>
</Variable>
<Variable Id="00334237-19c0-45b1-a8f2-4c034ae45ee0">
<Name>xNotHaltRegalString2OkDelay</Name>
<SourceUsages>
<FbPortUsage Id="b629d26d-451b-4b4c-b564-74407792e735">
<ModelElementId>8f1f6df5-d9cf-4c65-8a05-70dcbe95667a</ModelElementId>
</FbPortUsage>
</SourceUsages>
<TargetUsages>
<FbPortUsage Id="a025a4b8-f286-4167-a489-48b95dd52e8c">
<ModelElementId>f12cd8e1-ce57-4e8d-bce8-837114286a11</ModelElementId>
</FbPortUsage>
</TargetUsages>
</Variable>
</GlobalVariables>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<safetyApplication Crc="1720726332" xmlns:dm0="http://schemas.microsoft.com/VisualStudio/2008/DslTools/Core" dslVersion="1.5.0.0" Id="ee0f6780-d690-4a7b-bca6-dedf942a933e" name="" mapState="false" mapDiag="false" groupOrderId="1" passificationAllowed="false" temporaryDeactivationAllowed="true" permamentDeactivationAllowed="true" xmlid="0" analogFBOutputReplacementValues="Zero" verifyAnalogFBInputsIfStart="false" userFbId="00000000-0000-0000-0000-000000000000" xmlns="http://schemas.microsoft.com/dsltools/SafetyApplicationLanguage">
<safetyApplication Crc="3987103492" xmlns:dm0="http://schemas.microsoft.com/VisualStudio/2008/DslTools/Core" dslVersion="1.5.0.0" Id="ee0f6780-d690-4a7b-bca6-dedf942a933e" name="" mapState="false" mapDiag="false" groupOrderId="0" passificationAllowed="false" temporaryDeactivationAllowed="true" permamentDeactivationAllowed="true" xmlid="0" analogFBOutputReplacementValues="Zero" verifyAnalogFBInputsIfStart="false" userFbId="00000000-0000-0000-0000-000000000000" xmlns="http://schemas.microsoft.com/dsltools/SafetyApplicationLanguage">
<networks>
<safetyApplicationHasNetworks Id="0128b245-705e-4f3e-bf21-12c6b95cf2f3">
<Network Id="8b3e94c9-8993-4028-8d2f-eefe0ea6472c" name="Network1" networkName="Network1" intId="1" networkOrderId="0">
@@ -69,6 +69,85 @@
</functionBlocks>
</Network>
</safetyApplicationHasNetworks>
<safetyApplicationHasNetworks Id="90d5d4e6-4f1e-4628-b733-144c9de76cd2">
<Network Id="671fb8c4-89cf-44be-8d23-cbb6701fd61e" name="Network2" networkName="Network2" intId="2" networkOrderId="1">
<functionBlocks>
<networkHasFunctionBlocks Id="f5bccaca-47e4-49db-8768-2e8ce3056245">
<fBEstop Id="4559e424-0981-4a85-b7cc-1dc0ccd1402e" name="FBEstop1" instanceName="FBEstop1" orderOfExecution="2" mapState="false" mapDiag="false" functionName="safeEstop" safeInputsAfterDiscError="true">
<inPorts>
<functioBlockHasInPorts Id="99543c9a-c578-4231-9661-a7be54d0c76a">
<inPort Id="497dfd32-770c-4ea1-8d8b-42400c79a8b8" name="Restart" portName="Restart" portNum="2" objectIndex="0" varId="1" filter="3" portDataType="1" maxDeviation="0" resetTime="0">
<fbPortGlobalVariableReferences>
<functionBlockPortHasFbPortGlobalVariableReferences Id="7cceb12e-cc05-44ac-94e5-bbe7a80d67b1">
<fbPortGlobalVariableReference Id="296b1094-2edc-4e64-a25c-c197dc359662" variableId="3b4f283a-d376-4bbc-8717-cb4b3d88342e" lastKnownPath="GVL1.xNotHaltRestart" />
</functionBlockPortHasFbPortGlobalVariableReferences>
</fbPortGlobalVariableReferences>
</inPort>
</functioBlockHasInPorts>
<functioBlockHasInPorts Id="80bd272c-3ec8-4fd5-b42f-99dbe7b85fb6">
<inPort Id="8f4735d3-2ce2-4771-ba00-54e5f6567269" name="EStopIn1" portName="EStopIn1" portNum="4" objectIndex="8" varId="3" filter="2" portDataType="1" channelInterface="Two-Channel" discrepancyTime="100" deactivate1="Break Contact (NC)" deactivate2="Break Contact (NC)" maxDeviation="0" resetTime="0" />
</functioBlockHasInPorts>
<functioBlockHasInPorts Id="b8763669-4c36-4061-ac05-f5f285139c33">
<inPort Id="65be6133-a359-4aab-8f4c-0d983aaaab2f" name="EStopIn2" portName="EStopIn2" portNum="5" objectIndex="9" varId="4" filter="2" portDataType="1" channelInterface="Both Deactivated" maxDeviation="0" resetTime="0" />
</functioBlockHasInPorts>
<functioBlockHasInPorts Id="42c86461-6936-43cc-a130-768353224eb7">
<inPort Id="5264fae5-29d3-498e-b2ae-1247fd18b1f3" name="EStopIn3" portName="EStopIn3" portNum="6" objectIndex="10" varId="5" filter="2" portDataType="1" channelInterface="Both Deactivated" maxDeviation="0" resetTime="0" />
</functioBlockHasInPorts>
<functioBlockHasInPorts Id="1460bdd1-b085-419a-9397-c2f13846d5bb">
<inPort Id="9bc7d598-3230-4992-85cc-9d55a1ebb4f4" name="EStopIn4" portName="EStopIn4" portNum="7" objectIndex="11" varId="6" filter="2" portDataType="1" channelInterface="Both Deactivated" maxDeviation="0" resetTime="0" />
</functioBlockHasInPorts>
<functioBlockHasInPorts Id="c9f6ec40-0d88-4032-9c23-60c05aa681c5">
<inPort Id="0b949dcb-b246-4595-9507-c9ed36c6a5f1" name="EStopIn5" portName="EStopIn5" portNum="8" objectIndex="12" varId="7" filter="2" portDataType="1" channelInterface="Both Deactivated" maxDeviation="0" resetTime="0" />
</functioBlockHasInPorts>
<functioBlockHasInPorts Id="0f987205-ab14-40ad-9ec0-4d1323b40512">
<inPort Id="0b89af62-dc43-4b92-baf0-bb227ea062fa" name="EStopIn6" portName="EStopIn6" portNum="9" objectIndex="13" varId="8" filter="2" portDataType="1" channelInterface="Both Deactivated" maxDeviation="0" resetTime="0" />
</functioBlockHasInPorts>
<functioBlockHasInPorts Id="1c02c553-e882-4f5b-88ac-c03bd8fec13f">
<inPort Id="d4d86a3d-f795-4951-9f8e-4f37fcda55bc" name="EStopIn7" portName="EStopIn7" portNum="10" objectIndex="14" varId="9" filter="2" portDataType="1" channelInterface="Both Deactivated" maxDeviation="0" resetTime="0" />
</functioBlockHasInPorts>
<functioBlockHasInPorts Id="585c08cd-8d08-4e23-aca3-ead3e434563b">
<inPort Id="62b181b3-e033-4f24-b742-8c9920eadb5f" name="EStopIn8" portName="EStopIn8" portNum="11" objectIndex="15" varId="10" filter="2" portDataType="1" channelInterface="Both Deactivated" maxDeviation="0" resetTime="0" />
</functioBlockHasInPorts>
<functioBlockHasInPorts Id="75ca15a3-99cf-4388-813b-e27c4f6970f8">
<inPort Id="cae43924-b9fd-484e-8d4b-0eb8e678040b" name="EDM1" portName="EDM1" portNum="13" objectIndex="1" varId="12" filter="3" portDataType="1" maxDeviation="0" resetTime="0" />
</functioBlockHasInPorts>
<functioBlockHasInPorts Id="eb16d72f-4f48-4be0-997e-e8e0f605eac7">
<inPort Id="a5f6b637-d894-4275-89d9-5917f08c90b0" name="EDM2" portName="EDM2" portNum="14" objectIndex="2" varId="13" filter="3" portDataType="1" maxDeviation="0" resetTime="0" />
</functioBlockHasInPorts>
</inPorts>
<outPorts>
<functionBlockHasOutPorts Id="0a9741e4-91bf-427e-8e46-47b98c429f21">
<outPort Id="eadf126d-30c6-44af-9303-689245516d46" name="Error" portName="Error" portNum="4" objectIndex="0" varId="16" filter="7" portDataType="1" replacementValue="0" />
</functionBlockHasOutPorts>
<functionBlockHasOutPorts Id="a92f7e81-dc0b-4719-bdfe-375c50e630b1">
<outPort Id="5257f24c-a541-4d7e-a17c-47c0eb1c0658" name="EStopOut" portName="EStopOut" portNum="11" objectIndex="1" varId="23" filter="7" portDataType="1" replacementValue="1">
<fbPortGlobalVariableReferences>
<functionBlockPortHasFbPortGlobalVariableReferences Id="eecb2744-5c10-44ec-b99f-25b03bc2b7ef">
<fbPortGlobalVariableReference Id="6722c939-f096-474c-8644-626606a23c14" variableId="470a26a4-f34a-41f5-9dc7-8b857cf4fdda" lastKnownPath="GVL1.xNotHaltRegalString1Ok" />
</functionBlockPortHasFbPortGlobalVariableReferences>
</fbPortGlobalVariableReferences>
</outPort>
</functionBlockHasOutPorts>
<functionBlockHasOutPorts Id="379edb31-c68b-4f0b-9fdc-2685efdbeaca">
<outPort Id="3f849045-0b93-4743-8e4f-168a6bcf5af1" name="EStopDelOut" portName="EStopDelOut" portNum="12" objectIndex="2" varId="26" filter="7" portDataType="1" replacementValue="1">
<fbPortGlobalVariableReferences>
<functionBlockPortHasFbPortGlobalVariableReferences Id="45f23705-d80c-424a-a287-ee5722cc19bb">
<fbPortGlobalVariableReference Id="1907cab7-0053-4fa1-86c0-fdd12b7ef9c8" variableId="34175068-eb12-4ad7-ac89-538b91b7f333" lastKnownPath="GVL1.xNotHaltRegalString1OkDelay" />
</functionBlockPortHasFbPortGlobalVariableReferences>
</fbPortGlobalVariableReferences>
</outPort>
</functionBlockHasOutPorts>
</outPorts>
<parameterPorts>
<functionBlockHasParamPorts Id="ec4d6418-354e-48c3-8747-e8162644a6ff">
<parameterPort Id="413d15bf-3532-4dc9-bcdd-4c79d5a31dc7" name="Delay Time (ms)" portName="Delay Time (ms)" portNum="8" objectIndex="0" varId="0" filter="0" portDataType="0" timing="100" userFbPortName="Delay Time (ms)" useInUserFb="false" />
</functionBlockHasParamPorts>
</parameterPorts>
</fBEstop>
</networkHasFunctionBlocks>
</functionBlocks>
</Network>
</safetyApplicationHasNetworks>
</networks>
<twinSAFEGroupAliasPorts>
<safetyApplicationHasTwinSAFEGroupAliasPort Id="c66ef078-cf59-4438-8086-6bcea2342270">
@@ -150,5 +229,69 @@
</targetUsages>
</variable>
</safetyApplicationHasVariables>
<safetyApplicationHasVariables Id="9f4514e1-9b93-4f77-98e3-b4f82c8d63a0">
<variable Id="4f4b32ec-8210-4d12-bf74-c098b4f1a4fe" name="xNotHaltCh1VonStringOk" isLocal="false">
<sourceUsages>
<variableHasSourceUsages Id="3c5f9a39-8613-49cc-a4fd-1ecbbff75b1f">
<variableUsages Id="9d091da7-e8a1-4fe7-ae2a-15f406c76581">
<usages>
<variableUsagesHasUsages Id="6320735a-129d-4a25-a59b-4cb581d1ca0f">
<aliasDeviceIoUsage Id="3f4f18b1-9f0e-438f-8bc8-f8a4dc2f2d4d" sdsId="26" channelId="2" functionId="1327742742" />
</variableUsagesHasUsages>
</usages>
</variableUsages>
</variableHasSourceUsages>
</sourceUsages>
<targetUsages>
<variableHasTargetUsages Id="754eff0f-0cff-476a-96c1-baaf167d5021">
<variableUsages Id="b861d26b-f707-4973-8bc2-9b1282177455">
<usages>
<variableUsagesHasUsages Id="d03fbf7b-e370-415e-b061-b0716140cec4">
<fbPortUsage Id="4ef3ac4c-4e1c-4e13-ad3a-252c095a0e36">
<functionBlockPort>
<fbPortUsageReferencesFunctionBlockPort Id="d4e5b88f-dfb6-4ef5-8c69-456c66527a90">
<inPortMoniker name="//Network2/FBEstop1/EStopIn1" />
</fbPortUsageReferencesFunctionBlockPort>
</functionBlockPort>
</fbPortUsage>
</variableUsagesHasUsages>
</usages>
</variableUsages>
</variableHasTargetUsages>
</targetUsages>
</variable>
</safetyApplicationHasVariables>
<safetyApplicationHasVariables Id="b1cf7cb5-8947-429e-ad64-defc8f9df912">
<variable Id="7d9a55d3-e277-4606-ab22-db87bed9ce87" name="xNotHaltCh2VonStringOk" isLocal="false">
<sourceUsages>
<variableHasSourceUsages Id="9cf33fd7-a70d-4166-9b8b-e84d745a98b9">
<variableUsages Id="4c3c6e01-3fa1-4c82-b41b-829f00111784">
<usages>
<variableUsagesHasUsages Id="b4a81de1-551e-45ba-bc58-49388e8d2477">
<aliasDeviceIoUsage Id="875b0684-6575-4081-8310-711b7f7c3ed7" sdsId="26" channelId="3" functionId="1327939349" />
</variableUsagesHasUsages>
</usages>
</variableUsages>
</variableHasSourceUsages>
</sourceUsages>
<targetUsages>
<variableHasTargetUsages Id="259937ce-9093-4fc3-92d3-002768d25147">
<variableUsages Id="677c0be5-b6ff-4da0-bc9c-446cc1adb084">
<usages>
<variableUsagesHasUsages Id="8194dfa1-0570-4d34-a346-ef281f46c781">
<fbPortUsage Id="da53a1a5-febc-4674-a44f-2e5651cd3d07">
<functionBlockPort>
<fbPortUsageReferencesFunctionBlockPort Id="8f2570bb-7716-4753-a25f-ebed540e5881">
<inPortMoniker name="//Network2/FBEstop1/EStopIn2" />
</fbPortUsageReferencesFunctionBlockPort>
</functionBlockPort>
</fbPortUsage>
</variableUsagesHasUsages>
</usages>
</variableUsages>
</variableHasTargetUsages>
</targetUsages>
</variable>
</safetyApplicationHasVariables>
</variables>
</safetyApplication>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<safetyApplicationLanguageDiagram Crc="3728393453" dslVersion="1.5.0.0" Id="6a903db0-1314-42cd-bc4c-fcb7e44ad0d1" absoluteBounds="0, 0, 11, 8.5" name="TwinSAFE">
<safetyApplicationLanguageDiagram Crc="3534160807" dslVersion="1.5.0.0" Id="6a903db0-1314-42cd-bc4c-fcb7e44ad0d1" absoluteBounds="0, 0, 11, 9.75" name="TwinSAFE">
<safetyApplicationMoniker name="/" />
<nestedChildShapes>
<networkSwimLane Id="7571e71f-182c-4172-8cf4-2d012c18b176" absoluteBounds="0, 0, 11, 4.125">
@@ -76,5 +76,75 @@
</fBDecoupleShape>
</nestedChildShapes>
</networkSwimLane>
<networkSwimLane Id="eab9c0a7-1dde-415d-a4b5-9db31be1354d" absoluteBounds="0, 4.125, 11, 5.5749999999999993">
<networkMoniker name="//Network2" />
<nestedChildShapes>
<fBEstopShape Id="01c72b15-4632-4618-86ca-2172aadb0184" absoluteBounds="2.125, 5, 3.35, 4.45">
<fBEstopMoniker name="//Network2/FBEstop1" />
<relativeChildShapes>
<inPortShape Id="9631c848-fe4d-47dd-8826-8331c2f8a8b4" absoluteBounds="2.045, 5.745, 0.15, 0.15">
<inPortMoniker name="//Network2/FBEstop1/Restart" />
<relativeChildShapes />
</inPortShape>
<inPortShape Id="5ce7055d-cbff-499e-a949-c838f2fb86d2" absoluteBounds="2.045, 6.3075, 0.15, 0.15">
<inPortMoniker name="//Network2/FBEstop1/EStopIn1" />
<relativeChildShapes />
</inPortShape>
<inPortShape Id="b0766009-a770-4b2b-a6f7-4d53d17e4f45" absoluteBounds="2.045, 6.5325000000000006, 0.15, 0.15">
<inPortMoniker name="//Network2/FBEstop1/EStopIn2" />
<relativeChildShapes />
</inPortShape>
<inPortShape Id="942d4549-ac31-429d-9b17-5ce6e5a39586" absoluteBounds="2.045, 6.8475, 0.15, 0.15">
<inPortMoniker name="//Network2/FBEstop1/EStopIn3" />
<relativeChildShapes />
</inPortShape>
<inPortShape Id="3045d2af-4340-4323-a9d8-7f77684167ef" absoluteBounds="2.045, 7.0725, 0.15, 0.15">
<inPortMoniker name="//Network2/FBEstop1/EStopIn4" />
<relativeChildShapes />
</inPortShape>
<inPortShape Id="dd20b80e-896a-4443-9eed-18eff5e7f759" absoluteBounds="2.045, 7.3875, 0.15, 0.15">
<inPortMoniker name="//Network2/FBEstop1/EStopIn5" />
<relativeChildShapes />
</inPortShape>
<inPortShape Id="37022ebe-009d-4d17-b324-cf949811a597" absoluteBounds="2.045, 7.6125000000000007, 0.15, 0.15">
<inPortMoniker name="//Network2/FBEstop1/EStopIn6" />
<relativeChildShapes />
</inPortShape>
<inPortShape Id="a4187ce4-577b-432c-8ec0-90c20f595f2f" absoluteBounds="2.045, 7.9275, 0.15, 0.15">
<inPortMoniker name="//Network2/FBEstop1/EStopIn7" />
<relativeChildShapes />
</inPortShape>
<inPortShape Id="cd526d43-8c17-465c-b7d2-d070a14ba128" absoluteBounds="2.045, 8.1525, 0.15, 0.15">
<inPortMoniker name="//Network2/FBEstop1/EStopIn8" />
<relativeChildShapes />
</inPortShape>
<inPortShape Id="5fc5b2f6-4e30-43c4-8558-2b766b0892f7" absoluteBounds="2.045, 8.7375, 0.15, 0.15">
<inPortMoniker name="//Network2/FBEstop1/EDM1" />
<relativeChildShapes />
</inPortShape>
<inPortShape Id="be73515c-3de3-4839-b987-aba4fe0b768b" absoluteBounds="2.045, 8.9625, 0.15, 0.15">
<inPortMoniker name="//Network2/FBEstop1/EDM2" />
<relativeChildShapes />
</inPortShape>
<outPortShape Id="5a77006b-bc52-43a3-a3eb-57b5e7e40865" absoluteBounds="5.375, 6.285, 0.15, 0.15">
<outPortMoniker name="//Network2/FBEstop1/Error" />
<relativeChildShapes />
</outPortShape>
<outPortShape Id="97e3206d-f5ca-442f-910a-9936c59a58b4" absoluteBounds="5.375, 8.175, 0.15, 0.15">
<outPortMoniker name="//Network2/FBEstop1/EStopOut" />
<relativeChildShapes />
</outPortShape>
<outPortShape Id="72763423-c0e4-4ada-a6c7-111949a1de86" absoluteBounds="5.375, 8.445, 0.15, 0.15">
<outPortMoniker name="//Network2/FBEstop1/EStopDelOut" />
<relativeChildShapes />
</outPortShape>
<paramPortShape Id="1fc969ee-8a2f-49f0-adfb-d8778826c428" absoluteBounds="3.695, 8.275, 0.7, 0.2">
<parameterPortMoniker name="//Network2/FBEstop1/Delay Time (ms)" />
<relativeChildShapes />
</paramPortShape>
</relativeChildShapes>
</fBEstopShape>
</nestedChildShapes>
</networkSwimLane>
</nestedChildShapes>
</safetyApplicationLanguageDiagram>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<safetyApplication Crc="3572667986" xmlns:dm0="http://schemas.microsoft.com/VisualStudio/2008/DslTools/Core" dslVersion="1.5.0.0" Id="b38a6b49-94be-48df-a0af-960770d67d03" name="" mapState="false" mapDiag="false" groupOrderId="2" passificationAllowed="false" temporaryDeactivationAllowed="true" permamentDeactivationAllowed="true" xmlid="0" analogFBOutputReplacementValues="Zero" verifyAnalogFBInputsIfStart="false" userFbId="00000000-0000-0000-0000-000000000000" xmlns="http://schemas.microsoft.com/dsltools/SafetyApplicationLanguage">
<safetyApplication Crc="3516787539" xmlns:dm0="http://schemas.microsoft.com/VisualStudio/2008/DslTools/Core" dslVersion="1.5.0.0" Id="b38a6b49-94be-48df-a0af-960770d67d03" name="" mapState="false" mapDiag="false" groupOrderId="1" passificationAllowed="false" temporaryDeactivationAllowed="true" permamentDeactivationAllowed="true" xmlid="0" analogFBOutputReplacementValues="Zero" verifyAnalogFBInputsIfStart="false" userFbId="00000000-0000-0000-0000-000000000000" xmlns="http://schemas.microsoft.com/dsltools/SafetyApplicationLanguage">
<networks>
<safetyApplicationHasNetworks Id="dbcce1ba-bd17-4226-9b14-71a6ff95c8ef">
<Network Id="2d5ced6d-d23e-412b-9ab1-5f27590a2bf1" name="Network1" networkName="Network1" intId="1" networkOrderId="0">
@@ -69,6 +69,85 @@
</functionBlocks>
</Network>
</safetyApplicationHasNetworks>
<safetyApplicationHasNetworks Id="88a6c5ed-e30f-488a-943a-67725ba04ccc">
<Network Id="500d2901-0227-4969-b0ac-284772103c07" name="Network2" networkName="Network2" intId="2" networkOrderId="1">
<functionBlocks>
<networkHasFunctionBlocks Id="6949ce0f-a3a0-4e83-a0a2-3ab107d1dd60">
<fBEstop Id="8321d8e5-7c8a-41a8-bc4f-86872b0c6b68" name="FBEstop1" instanceName="FBEstop1" orderOfExecution="2" mapState="false" mapDiag="false" functionName="safeEstop" safeInputsAfterDiscError="true">
<inPorts>
<functioBlockHasInPorts Id="2ecad519-8869-48e4-ace9-a2f50866e8d0">
<inPort Id="336968a3-e5f5-4dd8-a188-11d2e30ce80e" name="Restart" portName="Restart" portNum="2" objectIndex="0" varId="1" filter="3" portDataType="1" maxDeviation="0" resetTime="0">
<fbPortGlobalVariableReferences>
<functionBlockPortHasFbPortGlobalVariableReferences Id="d73ec5f3-3aaf-4909-91b1-4561960239f1">
<fbPortGlobalVariableReference Id="2ba6b8b4-8bdf-4135-94e5-90700fc70c22" variableId="3b4f283a-d376-4bbc-8717-cb4b3d88342e" lastKnownPath="GVL1.xNotHaltRestart" />
</functionBlockPortHasFbPortGlobalVariableReferences>
</fbPortGlobalVariableReferences>
</inPort>
</functioBlockHasInPorts>
<functioBlockHasInPorts Id="b0512264-b034-4015-aa71-873273c29565">
<inPort Id="d018e3cb-627e-46fa-b7e5-f6dd4019154d" name="EStopIn1" portName="EStopIn1" portNum="4" objectIndex="8" varId="3" filter="2" portDataType="1" channelInterface="Two-Channel" discrepancyTime="100" deactivate1="Break Contact (NC)" deactivate2="Break Contact (NC)" maxDeviation="0" resetTime="0" />
</functioBlockHasInPorts>
<functioBlockHasInPorts Id="f4c9b07d-c294-4d36-b229-153d0cad0d85">
<inPort Id="3f4566bb-d917-4dac-aa5b-b5313d7631a0" name="EStopIn2" portName="EStopIn2" portNum="5" objectIndex="9" varId="4" filter="2" portDataType="1" channelInterface="Both Deactivated" maxDeviation="0" resetTime="0" />
</functioBlockHasInPorts>
<functioBlockHasInPorts Id="eea3bcdc-869c-4475-ad6a-98c223fb4138">
<inPort Id="f34234ad-aeeb-4e00-8560-3bf7a1de3ddb" name="EStopIn3" portName="EStopIn3" portNum="6" objectIndex="10" varId="5" filter="2" portDataType="1" channelInterface="Both Deactivated" maxDeviation="0" resetTime="0" />
</functioBlockHasInPorts>
<functioBlockHasInPorts Id="6780c148-fa0b-470c-b585-dfdd7bb68892">
<inPort Id="dd0a081a-8ad2-491b-ba2f-52de75f231f5" name="EStopIn4" portName="EStopIn4" portNum="7" objectIndex="11" varId="6" filter="2" portDataType="1" channelInterface="Both Deactivated" maxDeviation="0" resetTime="0" />
</functioBlockHasInPorts>
<functioBlockHasInPorts Id="fc8f0744-21c8-4efe-af62-69117a4a9b27">
<inPort Id="6af3a5de-833b-4ea1-87aa-6716606e4e5b" name="EStopIn5" portName="EStopIn5" portNum="8" objectIndex="12" varId="7" filter="2" portDataType="1" channelInterface="Both Deactivated" maxDeviation="0" resetTime="0" />
</functioBlockHasInPorts>
<functioBlockHasInPorts Id="e375df63-17e1-44c0-8945-bc682d3619ca">
<inPort Id="e3b63bcd-eb20-4880-905c-d44a1b44b26e" name="EStopIn6" portName="EStopIn6" portNum="9" objectIndex="13" varId="8" filter="2" portDataType="1" channelInterface="Both Deactivated" maxDeviation="0" resetTime="0" />
</functioBlockHasInPorts>
<functioBlockHasInPorts Id="f9078449-10e4-4047-ab75-6ecd0c60db9d">
<inPort Id="668f16c3-e1fe-4bbd-b905-c5f03ce307e9" name="EStopIn7" portName="EStopIn7" portNum="10" objectIndex="14" varId="9" filter="2" portDataType="1" channelInterface="Both Deactivated" maxDeviation="0" resetTime="0" />
</functioBlockHasInPorts>
<functioBlockHasInPorts Id="5af46984-5b7e-4453-bb50-874c0f513725">
<inPort Id="ac32d317-f053-40ee-903d-06940c4b516a" name="EStopIn8" portName="EStopIn8" portNum="11" objectIndex="15" varId="10" filter="2" portDataType="1" channelInterface="Both Deactivated" maxDeviation="0" resetTime="0" />
</functioBlockHasInPorts>
<functioBlockHasInPorts Id="74392ccc-b2ec-4792-a77c-42f8f350a5a9">
<inPort Id="70af639f-ebe6-490c-8a9d-ed2e4319496c" name="EDM1" portName="EDM1" portNum="13" objectIndex="1" varId="12" filter="3" portDataType="1" maxDeviation="0" resetTime="0" />
</functioBlockHasInPorts>
<functioBlockHasInPorts Id="3ae952c4-f8e9-4cd7-ac6a-ac3a4dd231ae">
<inPort Id="e496a00a-d6c1-424f-9f86-73bedbaa8cfb" name="EDM2" portName="EDM2" portNum="14" objectIndex="2" varId="13" filter="3" portDataType="1" maxDeviation="0" resetTime="0" />
</functioBlockHasInPorts>
</inPorts>
<outPorts>
<functionBlockHasOutPorts Id="6ec7f41e-e50b-4836-aa70-88c081006a41">
<outPort Id="13ecaba5-0ce7-4bb3-827e-ecae56b14372" name="Error" portName="Error" portNum="4" objectIndex="0" varId="16" filter="7" portDataType="1" replacementValue="0" />
</functionBlockHasOutPorts>
<functionBlockHasOutPorts Id="1ad403fe-00c7-45fe-9d01-7750014f602e">
<outPort Id="e592f68f-b4c4-4a31-9939-cfe184190178" name="EStopOut" portName="EStopOut" portNum="11" objectIndex="1" varId="23" filter="7" portDataType="1" replacementValue="1">
<fbPortGlobalVariableReferences>
<functionBlockPortHasFbPortGlobalVariableReferences Id="b899c5c2-40b6-44c6-ad55-2d81ea3e4e7b">
<fbPortGlobalVariableReference Id="4685ddd6-04e1-492c-b6c2-8d7ed1ccbc1a" variableId="a206d633-4703-4d1d-b69b-7558aa4b78f1" lastKnownPath="GVL1.xNotHaltRegalString2Ok" />
</functionBlockPortHasFbPortGlobalVariableReferences>
</fbPortGlobalVariableReferences>
</outPort>
</functionBlockHasOutPorts>
<functionBlockHasOutPorts Id="f3d2a775-1974-479b-b1cd-a02ef212f15e">
<outPort Id="8f1f6df5-d9cf-4c65-8a05-70dcbe95667a" name="EStopDelOut" portName="EStopDelOut" portNum="12" objectIndex="2" varId="26" filter="7" portDataType="1" replacementValue="1">
<fbPortGlobalVariableReferences>
<functionBlockPortHasFbPortGlobalVariableReferences Id="b525dbf1-ff48-46b4-b505-9f68a325ae44">
<fbPortGlobalVariableReference Id="f1aa3d03-fcda-4717-88eb-4e96b7e34255" variableId="00334237-19c0-45b1-a8f2-4c034ae45ee0" lastKnownPath="GVL1.xNotHaltRegalString2OkDelay" />
</functionBlockPortHasFbPortGlobalVariableReferences>
</fbPortGlobalVariableReferences>
</outPort>
</functionBlockHasOutPorts>
</outPorts>
<parameterPorts>
<functionBlockHasParamPorts Id="b8a7e880-da07-4cb2-a86e-8124c913278c">
<parameterPort Id="56489da1-c24c-476f-ae19-af85f79a2f72" name="Delay Time (ms)" portName="Delay Time (ms)" portNum="8" objectIndex="0" varId="0" filter="0" portDataType="0" timing="100" userFbPortName="Delay Time (ms)" useInUserFb="false" />
</functionBlockHasParamPorts>
</parameterPorts>
</fBEstop>
</networkHasFunctionBlocks>
</functionBlocks>
</Network>
</safetyApplicationHasNetworks>
</networks>
<twinSAFEGroupAliasPorts>
<safetyApplicationHasTwinSAFEGroupAliasPort Id="666e902e-8df3-462e-a51c-f731f40286b1">
@@ -150,5 +229,69 @@
</targetUsages>
</variable>
</safetyApplicationHasVariables>
<safetyApplicationHasVariables Id="19e99ed8-79c2-4e6f-802c-ea4bf08c1a04">
<variable Id="be3eff32-1c6c-409a-9382-d51a43619828" name="xNotHaltCh1VonStringOk" isLocal="false">
<sourceUsages>
<variableHasSourceUsages Id="3ede147e-49cb-457f-a93f-7f53a1e8a830">
<variableUsages Id="3dcaa7ab-b2a4-4555-a4b1-c61faddfb542">
<usages>
<variableUsagesHasUsages Id="e057d911-c79a-4551-b19e-a5ba65aa8467">
<aliasDeviceIoUsage Id="87ec30d6-3b2f-4759-b5a8-37012c3e5a8e" sdsId="27" channelId="2" functionId="1327742742" />
</variableUsagesHasUsages>
</usages>
</variableUsages>
</variableHasSourceUsages>
</sourceUsages>
<targetUsages>
<variableHasTargetUsages Id="20082ef0-7d0c-4083-8576-5f140d54cfed">
<variableUsages Id="842e638c-ab20-4af7-bfd6-ef02cd0fd1f2">
<usages>
<variableUsagesHasUsages Id="4e09ee29-ad02-4f64-aa74-157c86849652">
<fbPortUsage Id="99610296-3c22-40c0-8ad7-c446b1ebcc5d">
<functionBlockPort>
<fbPortUsageReferencesFunctionBlockPort Id="3dd967db-9fce-4f9e-a200-4846f4954536">
<inPortMoniker name="//Network2/FBEstop1/EStopIn1" />
</fbPortUsageReferencesFunctionBlockPort>
</functionBlockPort>
</fbPortUsage>
</variableUsagesHasUsages>
</usages>
</variableUsages>
</variableHasTargetUsages>
</targetUsages>
</variable>
</safetyApplicationHasVariables>
<safetyApplicationHasVariables Id="683fd3a9-5bd4-4a0e-aeee-5fadb83872c8">
<variable Id="ded1573b-55b1-4c69-b040-4082e9111dcc" name="xNotHaltCh2VonStringOk" isLocal="false">
<sourceUsages>
<variableHasSourceUsages Id="e8731ba2-6490-4829-b5f0-fb7d2864a9ca">
<variableUsages Id="4dbc64a1-5589-4b56-85ef-21fde8bb3068">
<usages>
<variableUsagesHasUsages Id="efe6b2d8-a9b0-44ed-b7d0-8df632c44524">
<aliasDeviceIoUsage Id="b99f9c53-5a37-46bc-9072-dcbe1bae3001" sdsId="27" channelId="3" functionId="1327939349" />
</variableUsagesHasUsages>
</usages>
</variableUsages>
</variableHasSourceUsages>
</sourceUsages>
<targetUsages>
<variableHasTargetUsages Id="557c2369-c84e-4b33-b029-545b867ee326">
<variableUsages Id="3ff2c13d-1738-46ba-b0f2-7122a4caa225">
<usages>
<variableUsagesHasUsages Id="5e9fff00-a670-4d63-b903-90dec90e9567">
<fbPortUsage Id="30195a35-2202-4386-9879-a9188875566a">
<functionBlockPort>
<fbPortUsageReferencesFunctionBlockPort Id="161ddf5b-64c7-401e-aeb5-ce5e97e40524">
<inPortMoniker name="//Network2/FBEstop1/EStopIn2" />
</fbPortUsageReferencesFunctionBlockPort>
</functionBlockPort>
</fbPortUsage>
</variableUsagesHasUsages>
</usages>
</variableUsages>
</variableHasTargetUsages>
</targetUsages>
</variable>
</safetyApplicationHasVariables>
</variables>
</safetyApplication>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<safetyApplicationLanguageDiagram Crc="643093427" dslVersion="1.5.0.0" Id="75abf0c9-6655-4c32-b755-1c2819184b0e" absoluteBounds="0, 0, 11, 8.5" name="TwinSAFE">
<safetyApplicationLanguageDiagram Crc="2603887228" dslVersion="1.5.0.0" Id="75abf0c9-6655-4c32-b755-1c2819184b0e" absoluteBounds="0, 0, 11, 10.125" name="TwinSAFE">
<safetyApplicationMoniker name="/" />
<nestedChildShapes>
<networkSwimLane Id="a6f23b0f-bac6-4260-99fb-5a726f230abd" absoluteBounds="0, 0, 11, 4.125">
@@ -76,5 +76,75 @@
</fBDecoupleShape>
</nestedChildShapes>
</networkSwimLane>
<networkSwimLane Id="b3be1f37-8d37-45ba-bdd8-8aac828903b1" absoluteBounds="0, 4.125, 11, 5.9499999999999993">
<networkMoniker name="//Network2" />
<nestedChildShapes>
<fBEstopShape Id="609536c8-ac74-4a03-b4cd-f5e0d5b66de5" absoluteBounds="1.75, 5.375, 3.35, 4.45">
<fBEstopMoniker name="//Network2/FBEstop1" />
<relativeChildShapes>
<inPortShape Id="55686db2-6d82-490d-8a1a-3661e07d0561" absoluteBounds="1.67, 6.12, 0.15, 0.15">
<inPortMoniker name="//Network2/FBEstop1/Restart" />
<relativeChildShapes />
</inPortShape>
<inPortShape Id="d7eb55de-40a4-4a81-85b7-453f83d19828" absoluteBounds="1.67, 6.6825, 0.15, 0.15">
<inPortMoniker name="//Network2/FBEstop1/EStopIn1" />
<relativeChildShapes />
</inPortShape>
<inPortShape Id="3ca6dec3-e1e2-4617-b5bb-7ecb63be0d9f" absoluteBounds="1.67, 6.9075000000000006, 0.15, 0.15">
<inPortMoniker name="//Network2/FBEstop1/EStopIn2" />
<relativeChildShapes />
</inPortShape>
<inPortShape Id="b8169fa3-4f0c-403d-93c1-6b574ce1cf2e" absoluteBounds="1.67, 7.2225, 0.15, 0.15">
<inPortMoniker name="//Network2/FBEstop1/EStopIn3" />
<relativeChildShapes />
</inPortShape>
<inPortShape Id="d619437a-f48e-44a0-88b7-fbaf95545f08" absoluteBounds="1.67, 7.4475, 0.15, 0.15">
<inPortMoniker name="//Network2/FBEstop1/EStopIn4" />
<relativeChildShapes />
</inPortShape>
<inPortShape Id="0e3f7d8a-466e-4413-a78b-715d246076e5" absoluteBounds="1.67, 7.7625, 0.15, 0.15">
<inPortMoniker name="//Network2/FBEstop1/EStopIn5" />
<relativeChildShapes />
</inPortShape>
<inPortShape Id="cef3a02d-ce50-4f19-9c5c-6209695ad648" absoluteBounds="1.67, 7.9875000000000007, 0.15, 0.15">
<inPortMoniker name="//Network2/FBEstop1/EStopIn6" />
<relativeChildShapes />
</inPortShape>
<inPortShape Id="529f3b2d-b13e-48c8-ac6d-d302a26709ff" absoluteBounds="1.67, 8.3025, 0.15, 0.15">
<inPortMoniker name="//Network2/FBEstop1/EStopIn7" />
<relativeChildShapes />
</inPortShape>
<inPortShape Id="a44f8346-ed44-40e6-af41-995553a80f44" absoluteBounds="1.67, 8.5275, 0.15, 0.15">
<inPortMoniker name="//Network2/FBEstop1/EStopIn8" />
<relativeChildShapes />
</inPortShape>
<inPortShape Id="80d5480b-8140-48ec-814b-c79cd5fc8a1a" absoluteBounds="1.67, 9.1125, 0.15, 0.15">
<inPortMoniker name="//Network2/FBEstop1/EDM1" />
<relativeChildShapes />
</inPortShape>
<inPortShape Id="92cc5056-e57e-4dcd-85b3-057ee875269c" absoluteBounds="1.67, 9.3375, 0.15, 0.15">
<inPortMoniker name="//Network2/FBEstop1/EDM2" />
<relativeChildShapes />
</inPortShape>
<outPortShape Id="12040f4b-00ed-478d-81d8-be6ef865a1b6" absoluteBounds="5, 6.66, 0.15, 0.15">
<outPortMoniker name="//Network2/FBEstop1/Error" />
<relativeChildShapes />
</outPortShape>
<outPortShape Id="9f30934f-03fb-42f1-a914-40e01b0e59cb" absoluteBounds="5, 8.55, 0.15, 0.15">
<outPortMoniker name="//Network2/FBEstop1/EStopOut" />
<relativeChildShapes />
</outPortShape>
<outPortShape Id="387160f3-0155-4f0f-9610-398a10ea1fe1" absoluteBounds="5, 8.82, 0.15, 0.15">
<outPortMoniker name="//Network2/FBEstop1/EStopDelOut" />
<relativeChildShapes />
</outPortShape>
<paramPortShape Id="30e23c8b-9bfe-41f0-aab2-f66c17c1d61d" absoluteBounds="3.32, 8.65, 0.7, 0.2">
<parameterPortMoniker name="//Network2/FBEstop1/Delay Time (ms)" />
<relativeChildShapes />
</paramPortShape>
</relativeChildShapes>
</fBEstopShape>
</nestedChildShapes>
</networkSwimLane>
</nestedChildShapes>
</safetyApplicationLanguageDiagram>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<safetyApplication Crc="2758529715" xmlns:dm0="http://schemas.microsoft.com/VisualStudio/2008/DslTools/Core" dslVersion="1.5.0.0" Id="9612a4fe-bcc7-44ac-98eb-591c855d3593" name="" mapState="false" mapDiag="false" groupOrderId="0" passificationAllowed="false" temporaryDeactivationAllowed="true" permamentDeactivationAllowed="true" xmlid="0" analogFBOutputReplacementValues="Zero" verifyAnalogFBInputsIfStart="false" userFbId="00000000-0000-0000-0000-000000000000" xmlns="http://schemas.microsoft.com/dsltools/SafetyApplicationLanguage">
<safetyApplication Crc="1359224941" xmlns:dm0="http://schemas.microsoft.com/VisualStudio/2008/DslTools/Core" dslVersion="1.5.0.0" Id="9612a4fe-bcc7-44ac-98eb-591c855d3593" name="" mapState="false" mapDiag="false" groupOrderId="2" passificationAllowed="false" temporaryDeactivationAllowed="false" permamentDeactivationAllowed="false" xmlid="0" analogFBOutputReplacementValues="Zero" verifyAnalogFBInputsIfStart="false" userFbId="00000000-0000-0000-0000-000000000000" xmlns="http://schemas.microsoft.com/dsltools/SafetyApplicationLanguage">
<networks>
<safetyApplicationHasNetworks Id="380f5fd8-ba2a-45bb-a78e-f84c8d89382d">
<Network Id="11bb88f4-a35c-49d9-88d3-88e91ad6a621" name="Network1" networkName="Network1" intId="1" networkOrderId="0">
@@ -10,8 +10,8 @@
<functioBlockHasInPorts Id="091e3c65-4b5b-49af-98de-7dc9930fea99">
<inPort Id="f40fa17f-ee60-40e6-afd0-a4ff3f333ac1" name="Restart" portName="Restart" portNum="2" objectIndex="0" varId="1" filter="3" portDataType="1" maxDeviation="0" resetTime="0">
<fbPortGlobalVariableReferences>
<functionBlockPortHasFbPortGlobalVariableReferences Id="4383690b-2368-449a-ab21-20133961672d">
<fbPortGlobalVariableReference Id="96d0fc38-544b-4977-91d1-0467785fd7b1" variableId="3b4f283a-d376-4bbc-8717-cb4b3d88342e" lastKnownPath="GVL1.xNotHaltRestart" />
<functionBlockPortHasFbPortGlobalVariableReferences Id="39a9853e-dca7-4e41-91d9-85307558b043">
<fbPortGlobalVariableReference Id="e1b67e55-17e2-461c-bad5-690482136090" variableId="3b4f283a-d376-4bbc-8717-cb4b3d88342e" lastKnownPath="GVL1.xNotHaltRestart" />
</functionBlockPortHasFbPortGlobalVariableReferences>
</fbPortGlobalVariableReferences>
</inPort>
@@ -125,114 +125,29 @@
</parameterPorts>
</fBEstop>
</networkHasFunctionBlocks>
<networkHasFunctionBlocks Id="0307468f-c0fc-4737-a7b0-b104ce8b23ef">
<fBEstop Id="b25bcb11-c9e7-4a19-b8b9-2a2148f1ef4d" name="FBEstop11" instanceName="FBEstop2" orderOfExecution="2" mapState="false" mapDiag="false" functionName="safeEstop" safeInputsAfterDiscError="true">
<inPorts>
<functioBlockHasInPorts Id="2c31849c-ce20-4dbb-bbea-270cafd45696">
<inPort Id="c5035e66-889e-4017-b2b8-035e1758dbe6" name="Restart" portName="Restart" portNum="2" objectIndex="0" varId="1" filter="3" portDataType="1" maxDeviation="0" resetTime="0">
<fbPortGlobalVariableReferences>
<functionBlockPortHasFbPortGlobalVariableReferences Id="c4fe33bd-777d-4f5e-b45d-b6b137ec3936">
<fbPortGlobalVariableReference Id="05c76357-07ae-4b95-9708-2ae3304e48ba" variableId="3b4f283a-d376-4bbc-8717-cb4b3d88342e" lastKnownPath="GVL1.xNotHaltRestart" />
</functionBlockPortHasFbPortGlobalVariableReferences>
</fbPortGlobalVariableReferences>
</inPort>
</functioBlockHasInPorts>
<functioBlockHasInPorts Id="8579614c-6e25-4350-86ac-c6273fde72d8">
<inPort Id="0208ec07-4e73-4e98-82f9-f5ec1fc51646" name="EStopIn1" portName="EStopIn1" portNum="4" objectIndex="8" varId="3" filter="2" portDataType="1" channelInterface="Two-Channel" discrepancyTime="200" deactivate1="Break Contact (NC)" deactivate2="Break Contact (NC)" maxDeviation="0" resetTime="0">
<fbPortGlobalVariableReferences>
<functionBlockPortHasFbPortGlobalVariableReferences Id="c202d748-e3bc-41be-b8d1-8c47740b0498">
<fbPortGlobalVariableReference Id="34b236ed-1d9d-4a4c-bb83-4b196fcdf29a" variableId="3666207e-b87b-470a-a00e-dc8cf9a39624" lastKnownPath="GVL1.xNotHaltRegalString1Ch1" />
</functionBlockPortHasFbPortGlobalVariableReferences>
</fbPortGlobalVariableReferences>
</inPort>
</functioBlockHasInPorts>
<functioBlockHasInPorts Id="b0262ff3-c852-4161-aebb-d9ce5433444a">
<inPort Id="5ae9a84e-e023-421e-9861-820a4c425bb2" name="EStopIn2" portName="EStopIn2" portNum="5" objectIndex="9" varId="4" filter="2" portDataType="1" channelInterface="Both Deactivated" maxDeviation="0" resetTime="0">
<fbPortGlobalVariableReferences>
<functionBlockPortHasFbPortGlobalVariableReferences Id="d53288a0-ce0a-4eb9-a60b-9b3cbf2cc440">
<fbPortGlobalVariableReference Id="7131e0a3-df4a-4fcd-89c4-60e95051fe45" variableId="b89e5a29-9951-4f77-87d6-c370b60789c8" lastKnownPath="GVL1.xNotHaltRegalString1Ch2" />
</functionBlockPortHasFbPortGlobalVariableReferences>
</fbPortGlobalVariableReferences>
</inPort>
</functioBlockHasInPorts>
<functioBlockHasInPorts Id="845903d3-9f7b-4265-8608-99959a8b06ba">
<inPort Id="53a11715-872f-4c57-98dd-0522c0f608a5" name="EStopIn3" portName="EStopIn3" portNum="6" objectIndex="10" varId="5" filter="2" portDataType="1" channelInterface="Two-Channel" discrepancyTime="200" deactivate1="Break Contact (NC)" deactivate2="Break Contact (NC)" maxDeviation="0" resetTime="0">
<fbPortGlobalVariableReferences>
<functionBlockPortHasFbPortGlobalVariableReferences Id="85b955c3-e492-4ed4-96ce-f9a2d1868724">
<fbPortGlobalVariableReference Id="ac2a9c3e-369a-445a-84ba-07f628afdc1e" variableId="73fa5b99-a58a-4c74-817d-5d26701aa3d8" lastKnownPath="GVL1.xNotHaltRegalString2Ch1" />
</functionBlockPortHasFbPortGlobalVariableReferences>
</fbPortGlobalVariableReferences>
</inPort>
</functioBlockHasInPorts>
<functioBlockHasInPorts Id="4587b0e4-8a4c-4ffd-b1e0-bc1a17220d33">
<inPort Id="e4e16c14-19bb-47d4-95cc-878ecfaa10b1" name="EStopIn4" portName="EStopIn4" portNum="7" objectIndex="11" varId="6" filter="2" portDataType="1" channelInterface="Both Deactivated" maxDeviation="0" resetTime="0">
<fbPortGlobalVariableReferences>
<functionBlockPortHasFbPortGlobalVariableReferences Id="342f5871-9545-45a2-a5db-50f6bab8e05c">
<fbPortGlobalVariableReference Id="396ba3da-2f75-4ad6-87af-bffbb932bf5d" variableId="eb89a43f-f715-4c55-9198-694215469e51" lastKnownPath="GVL1.xNotHaltRegalString2Ch2" />
</functionBlockPortHasFbPortGlobalVariableReferences>
</fbPortGlobalVariableReferences>
</inPort>
</functioBlockHasInPorts>
<functioBlockHasInPorts Id="5cae2707-0679-4eb9-b76d-805b46521ab5">
<inPort Id="2aa1c730-2db3-4985-b436-6d00fd931a3d" name="EStopIn5" portName="EStopIn5" portNum="8" objectIndex="12" varId="7" filter="2" portDataType="1" channelInterface="Both Deactivated" maxDeviation="0" resetTime="0" />
</functioBlockHasInPorts>
<functioBlockHasInPorts Id="23b4a679-686d-4c8e-b8d8-0e8060bf9269">
<inPort Id="c0c6f62c-3814-4b68-89cb-32838eac0418" name="EStopIn6" portName="EStopIn6" portNum="9" objectIndex="13" varId="8" filter="2" portDataType="1" channelInterface="Both Deactivated" maxDeviation="0" resetTime="0" />
</functioBlockHasInPorts>
<functioBlockHasInPorts Id="e5489335-576d-47f7-8b85-6d3548e719d6">
<inPort Id="3318c60b-2852-4855-81aa-3e7227cd09bd" name="EStopIn7" portName="EStopIn7" portNum="10" objectIndex="14" varId="9" filter="2" portDataType="1" channelInterface="Both Deactivated" maxDeviation="0" resetTime="0" />
</functioBlockHasInPorts>
<functioBlockHasInPorts Id="28f3244e-6810-46c9-a261-9e1b60b4581e">
<inPort Id="1b35cbaa-154b-43e3-8a33-c001f9efcad7" name="EStopIn8" portName="EStopIn8" portNum="11" objectIndex="15" varId="10" filter="2" portDataType="1" channelInterface="Both Deactivated" maxDeviation="0" resetTime="0" />
</functioBlockHasInPorts>
<functioBlockHasInPorts Id="a221d6a7-3a91-405a-9300-d5f41affe1de">
<inPort Id="14c0b1f0-3548-4817-a29d-e8924b1c3892" name="EDM1" portName="EDM1" portNum="13" objectIndex="1" varId="12" filter="3" portDataType="1" maxDeviation="0" resetTime="0" />
</functioBlockHasInPorts>
<functioBlockHasInPorts Id="63dcf63a-967a-4b3e-be09-a71b0bd6eefe">
<inPort Id="aad67ed7-8413-4109-8228-9708832209ce" name="EDM2" portName="EDM2" portNum="14" objectIndex="2" varId="13" filter="3" portDataType="1" maxDeviation="0" resetTime="0" />
</functioBlockHasInPorts>
</inPorts>
<outPorts>
<functionBlockHasOutPorts Id="b37a754f-852e-43f9-8ea1-fd72c171c17c">
<outPort Id="0788bdcd-6fd3-4d34-9a2a-6d22e386e92e" name="Error" portName="Error" portNum="4" objectIndex="0" varId="16" filter="7" portDataType="1" replacementValue="0" />
</functionBlockHasOutPorts>
<functionBlockHasOutPorts Id="e949f399-a6f5-493b-905d-f2b3c47b563a">
<outPort Id="30cf4a06-4cb8-45a1-bf7e-e87b0f12e22b" name="EStopOut" portName="EStopOut" portNum="11" objectIndex="1" varId="23" filter="7" portDataType="1" replacementValue="0">
<targetFunctionBlockPorts>
<wiredLink Id="a3364cb2-d321-4d2a-9849-9ceedc267330">
<inPortMoniker name="//Network1/FBAnd1/AndIn2" />
</wiredLink>
</targetFunctionBlockPorts>
</outPort>
</functionBlockHasOutPorts>
<functionBlockHasOutPorts Id="c723a21f-f690-459f-98e7-702f91f1d5cc">
<outPort Id="98fec59d-3e93-4723-bd3f-55d5102319d4" name="EStopDelOut" portName="EStopDelOut" portNum="12" objectIndex="2" varId="26" filter="7" portDataType="1" replacementValue="0">
<targetFunctionBlockPorts>
<wiredLink Id="1c82c9c4-1b50-465b-8657-9620c5d837af">
<inPortMoniker name="//Network1/FBAnd2/AndIn2" />
</wiredLink>
</targetFunctionBlockPorts>
</outPort>
</functionBlockHasOutPorts>
</outPorts>
<parameterPorts>
<functionBlockHasParamPorts Id="af7c97a3-8dbd-4178-826d-a1a6fef43647">
<parameterPort Id="33bfb5ae-e656-4f2c-b6dc-3a32f270fa04" name="Delay Time (ms)" portName="Delay Time (ms)" portNum="8" objectIndex="0" varId="0" filter="0" portDataType="0" timing="2000" userFbPortName="Delay Time (ms)" useInUserFb="false" />
</functionBlockHasParamPorts>
</parameterPorts>
</fBEstop>
</networkHasFunctionBlocks>
<networkHasFunctionBlocks Id="358662e6-8dd8-469b-bc16-d432ff0fa435">
<fBAnd Id="5730960b-b461-44c8-aea1-953dad7bd97d" name="FBAnd1" instanceName="FBAnd1" orderOfExecution="3" mapState="false" mapDiag="false" functionName="safeAnd">
<fBAnd Id="5730960b-b461-44c8-aea1-953dad7bd97d" name="FBAnd1" instanceName="FBAnd1" orderOfExecution="2" mapState="false" mapDiag="false" functionName="safeAnd">
<inPorts>
<functioBlockHasInPorts Id="0d59bba0-7f2b-4271-afec-66391406ee6c">
<inPort Id="a843e1d0-65d0-4394-9bfb-556803ce4eef" name="AndIn1" portName="AndIn1" portNum="2" objectIndex="8" varId="2" filter="3" portDataType="1" channelInterface="Activated" deactivate1="Break Contact (NC)" maxDeviation="0" resetTime="0" />
</functioBlockHasInPorts>
<functioBlockHasInPorts Id="836b44c5-ce81-418e-9769-185bf769e2bc">
<inPort Id="34590447-ed64-453b-a1b9-a2c43b9ea301" name="AndIn2" portName="AndIn2" portNum="3" objectIndex="9" varId="3" filter="2" portDataType="1" channelInterface="Activated" deactivate1="Break Contact (NC)" maxDeviation="0" resetTime="0" />
<inPort Id="34590447-ed64-453b-a1b9-a2c43b9ea301" name="AndIn2" portName="AndIn2" portNum="3" objectIndex="9" varId="3" filter="2" portDataType="1" channelInterface="Activated" deactivate1="Break Contact (NC)" maxDeviation="0" resetTime="0">
<fbPortGlobalVariableReferences>
<functionBlockPortHasFbPortGlobalVariableReferences Id="b06767e5-2457-4b1a-9a84-1a37430b2a9c">
<fbPortGlobalVariableReference Id="6933e1d3-fb76-4af9-9fe4-2205725a507a" variableId="470a26a4-f34a-41f5-9dc7-8b857cf4fdda" lastKnownPath="GVL1.xNotHaltRegalString1Ok" />
</functionBlockPortHasFbPortGlobalVariableReferences>
</fbPortGlobalVariableReferences>
</inPort>
</functioBlockHasInPorts>
<functioBlockHasInPorts Id="1ab4fcdc-0ff5-4fd2-aef1-b6225123a11d">
<inPort Id="7d674340-ae8f-4834-bfc9-50845e6344e7" name="AndIn3" portName="AndIn3" portNum="4" objectIndex="10" varId="4" filter="2" portDataType="1" channelInterface="Deactivated" maxDeviation="0" resetTime="0" />
<inPort Id="7d674340-ae8f-4834-bfc9-50845e6344e7" name="AndIn3" portName="AndIn3" portNum="4" objectIndex="10" varId="4" filter="2" portDataType="1" channelInterface="Activated" deactivate1="Break Contact (NC)" maxDeviation="0" resetTime="0">
<fbPortGlobalVariableReferences>
<functionBlockPortHasFbPortGlobalVariableReferences Id="78d72fc2-667e-4012-b757-df2f8647eccf">
<fbPortGlobalVariableReference Id="cd2e2953-7d82-4c7e-833e-753d66b67768" variableId="a206d633-4703-4d1d-b69b-7558aa4b78f1" lastKnownPath="GVL1.xNotHaltRegalString2Ok" />
</functionBlockPortHasFbPortGlobalVariableReferences>
</fbPortGlobalVariableReferences>
</inPort>
</functioBlockHasInPorts>
<functioBlockHasInPorts Id="2ae65a3a-d723-4bb3-afe6-446fc2b0120e">
<inPort Id="66e83141-2dcf-40d5-9769-5685b0bc00e7" name="AndIn4" portName="AndIn4" portNum="5" objectIndex="11" varId="5" filter="2" portDataType="1" channelInterface="Deactivated" maxDeviation="0" resetTime="0" />
@@ -264,16 +179,28 @@
</fBAnd>
</networkHasFunctionBlocks>
<networkHasFunctionBlocks Id="b608c9c3-306f-4a49-86bf-8a3f6240aa3b">
<fBAnd Id="81e34e6f-9ef8-4863-a434-bfb20861f2b3" name="FBAnd2" instanceName="FBAnd2" orderOfExecution="4" mapState="false" mapDiag="false" functionName="safeAnd">
<fBAnd Id="81e34e6f-9ef8-4863-a434-bfb20861f2b3" name="FBAnd2" instanceName="FBAnd2" orderOfExecution="3" mapState="false" mapDiag="false" functionName="safeAnd">
<inPorts>
<functioBlockHasInPorts Id="8e66606f-d10e-42e7-b779-2df2e0e8ae6b">
<inPort Id="15494a63-b0d2-491e-a0c3-a63b1de2d8b8" name="AndIn1" portName="AndIn1" portNum="2" objectIndex="8" varId="2" filter="3" portDataType="1" channelInterface="Activated" deactivate1="Break Contact (NC)" maxDeviation="0" resetTime="0" />
</functioBlockHasInPorts>
<functioBlockHasInPorts Id="713a6483-af3c-48d4-ae3a-5ca182ed8c41">
<inPort Id="437b7852-b2f1-47fa-8d91-5eb8a49ea9f6" name="AndIn2" portName="AndIn2" portNum="3" objectIndex="9" varId="3" filter="2" portDataType="1" channelInterface="Activated" deactivate1="Break Contact (NC)" maxDeviation="0" resetTime="0" />
<inPort Id="437b7852-b2f1-47fa-8d91-5eb8a49ea9f6" name="AndIn2" portName="AndIn2" portNum="3" objectIndex="9" varId="3" filter="2" portDataType="1" channelInterface="Activated" deactivate1="Break Contact (NC)" maxDeviation="0" resetTime="0">
<fbPortGlobalVariableReferences>
<functionBlockPortHasFbPortGlobalVariableReferences Id="afd29a0b-664a-47e9-b3e8-5ca8c014bdd5">
<fbPortGlobalVariableReference Id="5add894f-aed1-4361-adfb-3c5c6753b20f" variableId="34175068-eb12-4ad7-ac89-538b91b7f333" lastKnownPath="GVL1.xNotHaltRegalString1OkDelay" />
</functionBlockPortHasFbPortGlobalVariableReferences>
</fbPortGlobalVariableReferences>
</inPort>
</functioBlockHasInPorts>
<functioBlockHasInPorts Id="5133df54-411f-4b22-9190-7517bd425df5">
<inPort Id="f12cd8e1-ce57-4e8d-bce8-837114286a11" name="AndIn3" portName="AndIn3" portNum="4" objectIndex="10" varId="4" filter="2" portDataType="1" channelInterface="Deactivated" maxDeviation="0" resetTime="0" />
<inPort Id="f12cd8e1-ce57-4e8d-bce8-837114286a11" name="AndIn3" portName="AndIn3" portNum="4" objectIndex="10" varId="4" filter="2" portDataType="1" channelInterface="Activated" deactivate1="Break Contact (NC)" maxDeviation="0" resetTime="0">
<fbPortGlobalVariableReferences>
<functionBlockPortHasFbPortGlobalVariableReferences Id="63e01591-3087-46ff-bea3-ccde4fcc8b6e">
<fbPortGlobalVariableReference Id="620f56ab-79be-4c5b-b5d7-ac0631a65b62" variableId="00334237-19c0-45b1-a8f2-4c034ae45ee0" lastKnownPath="GVL1.xNotHaltRegalString2OkDelay" />
</functionBlockPortHasFbPortGlobalVariableReferences>
</fbPortGlobalVariableReferences>
</inPort>
</functioBlockHasInPorts>
<functioBlockHasInPorts Id="0e3e6e90-7f38-46b4-a757-1c9514027b4c">
<inPort Id="b8629ccb-bc8b-4372-8d62-fb99eb1d4cf0" name="AndIn4" portName="AndIn4" portNum="5" objectIndex="11" varId="5" filter="2" portDataType="1" channelInterface="Deactivated" maxDeviation="0" resetTime="0" />

View File

@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<safetyApplicationLanguageDiagram Crc="766866809" dslVersion="1.5.0.0" Id="10165380-5ad4-4a1c-ba25-e8b86a8e4001" absoluteBounds="0, 0, 14.5, 9.875" name="TwinSAFE">
<safetyApplicationLanguageDiagram Crc="1006273056" dslVersion="1.5.0.0" Id="10165380-5ad4-4a1c-ba25-e8b86a8e4001" absoluteBounds="0, 0, 14.5, 8.75" name="TwinSAFE">
<safetyApplicationMoniker name="/" />
<nestedChildShapes>
<networkSwimLane Id="e01f4458-df70-481e-ae9d-4f44a16fbcf1" absoluteBounds="0, 0, 14.5, 9.825">
<networkSwimLane Id="e01f4458-df70-481e-ae9d-4f44a16fbcf1" absoluteBounds="0, 0, 14.5, 8.75">
<networkMoniker name="//Network1" />
<nestedChildShapes>
<fBEstopShape Id="c5efe502-b07f-4e84-a1b4-e00110084c14" absoluteBounds="2.25, 0.625, 3.35, 4.45">
@@ -70,71 +70,6 @@
</paramPortShape>
</relativeChildShapes>
</fBEstopShape>
<fBEstopShape Id="b8a722ce-61a7-4a18-aa46-322013d6319e" absoluteBounds="2.25, 5.125, 3.35, 4.45">
<fBEstopMoniker name="//Network1/FBEstop11" />
<relativeChildShapes>
<inPortShape Id="2752b414-1c95-4a6f-ab40-67922e5ce41f" absoluteBounds="2.17, 5.87, 0.15, 0.15">
<inPortMoniker name="//Network1/FBEstop11/Restart" />
<relativeChildShapes />
</inPortShape>
<inPortShape Id="b17f40df-7c3c-49dd-baed-483e2c362523" absoluteBounds="2.17, 6.4325, 0.15, 0.15">
<inPortMoniker name="//Network1/FBEstop11/EStopIn1" />
<relativeChildShapes />
</inPortShape>
<inPortShape Id="2be1e3d1-273e-4e58-a819-9709d0b4d210" absoluteBounds="2.17, 6.6575000000000006, 0.15, 0.15">
<inPortMoniker name="//Network1/FBEstop11/EStopIn2" />
<relativeChildShapes />
</inPortShape>
<inPortShape Id="a44e6644-e349-4616-8d9f-dccb929a7035" absoluteBounds="2.17, 6.9725, 0.15, 0.15">
<inPortMoniker name="//Network1/FBEstop11/EStopIn3" />
<relativeChildShapes />
</inPortShape>
<inPortShape Id="a08e2a31-e1b2-4885-93a9-e4ca955188fc" absoluteBounds="2.17, 7.1975, 0.15, 0.15">
<inPortMoniker name="//Network1/FBEstop11/EStopIn4" />
<relativeChildShapes />
</inPortShape>
<inPortShape Id="5d9bbafb-2b96-437c-b0b4-a6f3cd61f5fe" absoluteBounds="2.17, 7.5125, 0.15, 0.15">
<inPortMoniker name="//Network1/FBEstop11/EStopIn5" />
<relativeChildShapes />
</inPortShape>
<inPortShape Id="5afdab10-9abf-41c2-bc9a-178d4721fb84" absoluteBounds="2.17, 7.7375000000000007, 0.15, 0.15">
<inPortMoniker name="//Network1/FBEstop11/EStopIn6" />
<relativeChildShapes />
</inPortShape>
<inPortShape Id="173344b1-e0c2-42b5-8c9d-23ed9dd05a61" absoluteBounds="2.17, 8.0525, 0.15, 0.15">
<inPortMoniker name="//Network1/FBEstop11/EStopIn7" />
<relativeChildShapes />
</inPortShape>
<inPortShape Id="043dfd3c-8ebe-4e24-8f2f-ffd8ed747fb2" absoluteBounds="2.17, 8.2775, 0.15, 0.15">
<inPortMoniker name="//Network1/FBEstop11/EStopIn8" />
<relativeChildShapes />
</inPortShape>
<inPortShape Id="311b4105-7fc2-44c3-9467-7f99cf8a7bae" absoluteBounds="2.17, 8.8625, 0.15, 0.15">
<inPortMoniker name="//Network1/FBEstop11/EDM1" />
<relativeChildShapes />
</inPortShape>
<inPortShape Id="f16b0ebb-a167-4169-89bf-1f69c2050627" absoluteBounds="2.17, 9.0875, 0.15, 0.15">
<inPortMoniker name="//Network1/FBEstop11/EDM2" />
<relativeChildShapes />
</inPortShape>
<outPortShape Id="77f580ca-d6bd-4529-a086-eed47b23a61b" absoluteBounds="5.5, 6.41, 0.15, 0.15">
<outPortMoniker name="//Network1/FBEstop11/Error" />
<relativeChildShapes />
</outPortShape>
<outPortShape Id="b6f2236d-cd17-43a2-8afa-0b20a30c13df" absoluteBounds="5.5, 8.3, 0.15, 0.15">
<outPortMoniker name="//Network1/FBEstop11/EStopOut" />
<relativeChildShapes />
</outPortShape>
<outPortShape Id="d971b842-f25b-4208-bda4-f9b510a77ac5" absoluteBounds="5.5, 8.57, 0.15, 0.15">
<outPortMoniker name="//Network1/FBEstop11/EStopDelOut" />
<relativeChildShapes />
</outPortShape>
<paramPortShape Id="81bc3a4e-df71-4c86-bcab-1073946f015f" absoluteBounds="3.82, 8.4, 0.7, 0.2">
<parameterPortMoniker name="//Network1/FBEstop11/Delay Time (ms)" />
<relativeChildShapes />
</paramPortShape>
</relativeChildShapes>
</fBEstopShape>
<fBAndShape Id="e0e4ea3e-f1ea-4da4-aa5c-01aa25c2c980" absoluteBounds="8.25, 1.75, 2.75, 3.25">
<fBAndMoniker name="//Network1/FBAnd1" />
<relativeChildShapes>
@@ -217,21 +152,7 @@
</outPortShape>
</relativeChildShapes>
</fBAndShape>
<wiredLinkConnector Id="37565f52-1e15-41f7-8ce0-6321d06de9f2" edgePoints="[(5.65 : 8.645); (6.43385402169079 : 8.645); (6.43385402169079 : 6.34); (8.17 : 6.34)]" manuallyRouted="true" fixedFrom="Caller" fixedTo="Caller" color="0, 0, 0" thickness="0.01" expandedManuallyRouted="false">
<wiredLinkMoniker Id="1c82c9c4-1b50-465b-8657-9620c5d837af" />
<nodes>
<outPortShapeMoniker Id="d971b842-f25b-4208-bda4-f9b510a77ac5" />
<inPortShapeMoniker Id="941df459-0051-488c-9c1a-7cc679ea771f" />
</nodes>
</wiredLinkConnector>
<wiredLinkConnector Id="8c038eb9-7eaa-4edf-aef3-76cdde63484b" edgePoints="[(5.65 : 8.375); (6.2317706849426 : 8.375); (6.2317706849426 : 2.84); (8.17 : 2.84)]" manuallyRouted="true" fixedFrom="Caller" fixedTo="Caller" color="0, 0, 0" thickness="0.01" expandedManuallyRouted="false">
<wiredLinkMoniker Id="a3364cb2-d321-4d2a-9849-9ceedc267330" />
<nodes>
<outPortShapeMoniker Id="b6f2236d-cd17-43a2-8afa-0b20a30c13df" />
<inPortShapeMoniker Id="723ac003-1731-456a-981d-d3aafe2f6aa5" />
</nodes>
</wiredLinkConnector>
<wiredLinkConnector Id="9f97a579-88c5-40a8-87cb-ec05d875e657" edgePoints="[(5.65 : 4.145); (6.19843735160927 : 4.145 : JumpStart); (6.26510401827593 : 4.145 : JumpEnd); (6.42604136988521 : 4.145); (6.42604136988521 : 6.07); (8.17 : 6.07)]" manuallyRouted="true" fixedFrom="Caller" fixedTo="Caller" color="0, 0, 0" thickness="0.01" expandedManuallyRouted="false">
<wiredLinkConnector Id="9f97a579-88c5-40a8-87cb-ec05d875e657" edgePoints="[(5.65 : 4.145); (6.42604136988521 : 4.145); (6.42604136988521 : 6.07); (8.17 : 6.07)]" manuallyRouted="true" fixedFrom="Caller" fixedTo="Caller" color="0, 0, 0" thickness="0.01" expandedManuallyRouted="false">
<wiredLinkMoniker Id="76bc7299-0ce7-476e-937d-095cee842820" />
<nodes>
<outPortShapeMoniker Id="cd5d77b9-a607-4e82-a9f8-a6fde694cc20" />

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<TargetSystemConfig Crc="2875050645" Version="1.5">
<TargetSystemConfig Crc="1520857350" Version="1.5">
<TargetSystemType>HSafetyPLC</TargetSystemType>
<TargetSystemSubType>EL6910</TargetSystemSubType>
<IsExternalDevice>false</IsExternalDevice>
@@ -7,7 +7,7 @@
<TargetSystemObjectName>-42K1 (EL6910)</TargetSystemObjectName>
<SoftwareVersion>05 (V01.14) </SoftwareVersion>
<SerialNumber>4238305</SerialNumber>
<ProjectCRC>46479</ProjectCRC>
<ProjectCRC>577</ProjectCRC>
<MapProjectCRC>false</MapProjectCRC>
<MapSerialNumber>false</MapSerialNumber>
<VersionNumber>1</VersionNumber>
@@ -20,6 +20,6 @@
<TakeOverStandardAliasDeviceNamesInProcessImage>true</TakeOverStandardAliasDeviceNamesInProcessImage>
<BackupRestore Needed="0" Activated="false" RestoreUserAdministration="false" />
<Customizing>
<Group Id="9612a4fe-bcc7-44ac-98eb-591c855d3593" Value="3" />
<Group Id="b38a6b49-94be-48df-a0af-960770d67d03" Value="3" />
</Customizing>
</TargetSystemConfig>

View File

@@ -300,7 +300,10 @@ VAR_GLOBAL PERSISTENT
rCVTn : REAL := 0.0;
// Minimum current for cv charging in Amps
rMinCVCurrentForFull : REAL := -5.0;
rMinCVCurrentForFull : REAL := 5.0;
// Time for current to be below set target before cv charging is done
timCVCurrentReached : TIME := T#10S;
// Dummy to deactivate functions
{attribute 'analysis' := '-33'}

View File

@@ -213,6 +213,9 @@
<Compile Include="POUs\Utility\Controller\FB_PI.TcPOU">
<SubType>Code</SubType>
</Compile>
<Compile Include="POUs\Utility\Controller\FB_PT1Filter.TcPOU">
<SubType>Code</SubType>
</Compile>
<Compile Include="POUs\Utility\FB_AlarmMessage.TcPOU">
<SubType>Code</SubType>
</Compile>

File diff suppressed because one or more lines are too long

View File

@@ -551,12 +551,10 @@ CASE _iState OF
CASE eOperationMode OF
E_STRING_OPERATING_MODE.AUTOMATIC:
_rPowerInverterInternal := rPowerInverter;
_xEnableInverter := TRUE;
_iState := 21;
E_STRING_OPERATING_MODE.SAFETY_CHECK:
_rPowerInverterInternal := 0.0;
_xEnableInverter := TRUE;
_iState := 21;
E_STRING_OPERATING_MODE.PRECHARGE:

View File

@@ -214,12 +214,17 @@ VAR
_fbLimit : FB_Limit;
_xCVChargingLatched : BOOL;
_rCVSetpoint : REAL;
_xStringsFullCV : BOOL;
_rPowerDH : REAL;
_xDHActive : BOOL;
_fbTONDHCycleTime : TON := (PT := T#15M);
_xFullByVoltage : BOOL;
_xFullByCV : BOOL;
_fbTONCVLow : TON;
_xCVCurrentLimitReached : BOOL;
_fbPT1CVAntiAliasFilter : FB_PT1Filter;
// tower light
_fbTowerLight : FB_TowerLight;
END_VAR
@@ -1116,7 +1121,7 @@ _fbTowerLight(
_xBatteryActive := TRUE;
// Check if the battery should still be active
IF (_rAutoPowerRequest = 0.0) AND ((NOT GVL_MODBUS.stModbusEMSComm.stModbusReg12.wBMSControlsRegister.stBitmap.bScheduleActive) OR (NOT _xDHActive)) THEN
IF (_rAutoPowerRequest = 0.0) AND (NOT GVL_MODBUS.stModbusEMSComm.stModbusReg12.wBMSControlsRegister.stBitmap.bScheduleActive) AND (NOT _xDHActive) THEN
_xNoPowerRequested := TRUE;
ELSE
_xNoPowerRequested := FALSE;
@@ -1164,10 +1169,7 @@ _fbTowerLight(
_xCVChargingLatched := TRUE;
END_IF
// Delatch if charging power requested is lower than cv power
//IF _xCVChargingLatched AND (_rAutoPowerRequest > _rPowerInverter) THEN
// _xCVChargingLatched := FALSE;
//END_IF
IF _xCVChargingLatched THEN
// Reglerfreigabe
@@ -1177,31 +1179,43 @@ _fbTowerLight(
_rCVSetpoint := _rHighestSegmentVoltage;
END_IF
_fbPT1CVAntiAliasFilter(rInput := _rHighestSegmentVoltage, timT := T#200MS);
_fbPIControl(
xEnable := _xCVChargingLatched,
rSP:= _rCVSetpoint,
rPV:= _rHighestSegmentVoltage,
rPV:= _fbPT1CVAntiAliasFilter.rOutput,
rKp:= GVL_CONFIG.rCVKp,
rTn:= GVL_CONFIG.rCVTn,
xSaturated:= _fbLimit.xClamped);
_rPowerInverter := _rAutoPowerRequest - _fbPIControl.rMV;
_rPowerInverter := _rAutoPowerRequest - _fbPIControl.rMV;
_fbLimit(
rIn := _rPowerInverter,
rMin := _rMinPower,
rMax := _rMaxPower,
rOut => _rPowerInverter);
IF ((GVL_SCADA.stHMIInterface[0].stInverterData.rActDCCurrent > GVL_CONFIG.rMinCVCurrentForFull) AND GVL_CONFIG.axStringEnabled[0]) OR ((GVL_SCADA.stHMIInterface[1].stInverterData.rActDCCurrent > GVL_CONFIG.rMinCVCurrentForFull) AND GVL_CONFIG.axStringEnabled[1]) THEN
_xStringsFullCV := TRUE;
ELSE
_xStringsFullCV := FALSE;
// Delatch if charging power requested is lower than cv power
IF _xCVChargingLatched AND (_rAutoPowerRequest > _rPowerInverter) THEN
_xCVChargingLatched := FALSE;
END_IF
_xFullByVoltage := (NOT GVL_CONFIG.xCVCharging)
AND (_rPowerInverter < 0)
AND ((_rMaxCurrentInverterDCVoltage >= GVL_CONFIG.rStringFullyChargedVoltage) OR (_rHighestSegmentVoltage >= GVL_CONFIG.rMaximumUnitVoltage));
_xCVCurrentLimitReached := ((GVL_SCADA.stHMIInterface[0].stInverterData.rActDCCurrent > GVL_CONFIG.rMinCVCurrentForFull) AND GVL_CONFIG.axStringEnabled[0]) OR ((GVL_SCADA.stHMIInterface[1].stInverterData.rActDCCurrent > GVL_CONFIG.rMinCVCurrentForFull) AND GVL_CONFIG.axStringEnabled[1]);
_fbTONCVLow(
IN := (_rPowerInverter < 0) AND _xCVCurrentLimitReached AND _xCVChargingLatched,
PT := GVL_CONFIG.timCVCurrentReached
);
_xFullByCV := GVL_CONFIG.xCVCharging AND _fbTONCVLow.Q;
// Shutdown triggered by battery fully charged
IF GVL_MODBUS.stModbusEMSComm.stModbusReg11.eChargeStatus = E_CHARGE_STATUS.CHARGING
AND ((_rMaxCurrentInverterDCVoltage >= GVL_CONFIG.rStringFullyChargedVoltage) OR (_rHighestSegmentVoltage >= GVL_CONFIG.rMaximumUnitVoltage AND (NOT _xCVChargingLatched)) OR _xStringsFullCV) THEN
//OR (_xCVChargingLatched AND ((ABS(GVL_SCADA.stHMIInterface[0].rCurrent) < 8.0) OR (ABS(GVL_SCADA.stHMIInterface[0].rCurrent) < 8.0)))
IF GVL_MODBUS.stModbusEMSComm.stModbusReg11.eChargeStatus = E_CHARGE_STATUS.CHARGING AND (_xFullByVoltage OR _xFullByCV) THEN
_xGetPowerMeterData := TRUE;
IF (_eBMSControlMode = E_BMS_CONTROL_MODE.CYCLING) THEN
GVL_SCADA.eCycleStatus := E_CYCLE_STATUS.DISCHARGE_STARTED;
@@ -1209,6 +1223,7 @@ _fbTowerLight(
GVL_SCADA.stAutomaticModeHMI.diSetpointAutomatic := REAL_TO_DINT(_rAutoPowerRequest);
ELSE
_tonBeginShutdown(In := FALSE);
_fbTONCVLow(In := FALSE);
// Send message
_fbBatteryFullMessage.Send(0);

View File

@@ -8,6 +8,7 @@ VAR_INPUT
rKp : REAL;
rTn : REAL;
xEnable : BOOL;
xSaturated : BOOL := FALSE;
END_VAR
VAR_OUTPUT
@@ -19,6 +20,9 @@ VAR
_rIntegral : REAL := 0.0;
_rProportinal : REAL := 0.0;
_rErrorSign : REAL;
_xHoldIntegrator : BOOL;
_fbGetCurTaskIdx : GETCURTASKINDEX;
_rT : REAL;
END_VAR
@@ -31,10 +35,18 @@ _rError := rSP - rPV;
_rProportinal := rKp * _rError;
// Calculate controller output
rMV := _rProportinal + _rIntegral;
IF xEnable THEN
rMV := _rProportinal + _rIntegral;
ELSE
rMV := 0.0;
END_IF
_rErrorSign := _rError * rMV;
_xHoldIntegrator := xSaturated AND (_rErrorSign > 0);
// Stop integrator if saturated
IF (NOT xSaturated) AND (rTn <> 0) THEN
IF (NOT _xHoldIntegrator) AND (rTn <> 0) THEN
_rIntegral := _rIntegral + (rKp * _rT / rTn) * _rError;
END_IF
@@ -56,7 +68,7 @@ END_VAR]]></Declaration>
<Implementation>
<ST><![CDATA[// Get current task time
_fbGetCurTaskIdx();
_rT := UDINT_TO_LREAL(TwinCAT_SystemInfoVarList._TASKInfo[_fbGetCurTaskIdx.index].CycleTime) * 10E-5;]]></ST>
_rT := LREAL_TO_REAL(UDINT_TO_LREAL(TwinCAT_SystemInfoVarList._TASKInfo[_fbGetCurTaskIdx.index].CycleTime) * 10E-5);]]></ST>
</Implementation>
</Method>
<Action Name="Reset" Id="{4227580c-e163-4250-9575-dd60ff3083af}">

View File

@@ -0,0 +1,43 @@
<?xml version="1.0" encoding="utf-8"?>
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4026.12">
<POU Name="FB_PT1Filter" Id="{bdcdd199-96b1-43e5-8e4f-5515b0a2225d}" SpecialFunc="None">
<Declaration><![CDATA[FUNCTION_BLOCK FB_PT1Filter
VAR_INPUT
rInput : REAL;
timT : TIME := T#100MS;
END_VAR
VAR_OUTPUT
rOutput : REAL;
END_VAR
VAR
_rOutputLast : REAL := 0.0;
_fbGetCurTaskIdx : GETCURTASKINDEX;
_rT : REAL;
END_VAR
]]></Declaration>
<Implementation>
<ST><![CDATA[// Calculate output
rOutput := _rOutputLast + (rInput - _rOutputLast) * (_rT / (TIME_TO_LREAL(timT) + _rT));
// Save last output
_rOutputLast := rOutput;]]></ST>
</Implementation>
<Method Name="FB_init" Id="{8cf1c8f8-42a3-4c2a-b0ef-f9c06ee7877f}">
<Declaration><![CDATA[//FB_Init ist immer implizit verfügbar und wird primär für die Initialisierung verwendet.
//Der Rückgabewert wird nicht ausgewertet. Für gezielte Einflussnahme können Sie
//die Methoden explizit deklarieren und darin mit dem Standard-Initialisierungscode
//zusätzlichen Code bereitstellen. Sie können den Rückgabewert auswerten.
METHOD FB_Init: BOOL
VAR_INPUT
bInitRetains: BOOL; // TRUE: Die Retain-Variablen werden initialisiert (Reset warm / Reset kalt)
bInCopyCode: BOOL; // TRUE: Die Instanz wird danach in den Kopiercode kopiert (Online-Change)
END_VAR]]></Declaration>
<Implementation>
<ST><![CDATA[// Get current task time
_fbGetCurTaskIdx();
_rT := LREAL_TO_REAL(UDINT_TO_LREAL(TwinCAT_SystemInfoVarList._TASKInfo[_fbGetCurTaskIdx.index].CycleTime) * 10E-5);]]></ST>
</Implementation>
</Method>
</POU>
</TcPlcObject>

View File

@@ -263,7 +263,7 @@
</System>
<Plc>
<Project GUID="{9AE64910-5EB2-4866-93FD-EFE059C38C36}" Name="PLC" PrjFilePath="PLC\PLC.plcproj" TmcFilePath="PLC\PLC.tmc" ReloadTmc="true" AmsPort="851" FileArchiveSettings="#x000e" CopyTmcToTarget="true" CopyTpyToTarget="false" SymbolicMapping="true">
<Instance Id="#x08502000" TcSmClass="TComPlcObjDef" KeepUnrestoredLinks="2" TmcHash="{59DB58A1-303F-7AE9-8E28-EFFD78ABB929}" TmcPath="PLC\PLC.tmc">
<Instance Id="#x08502000" TcSmClass="TComPlcObjDef" KeepUnrestoredLinks="2" TmcHash="{9C701697-89D3-568B-2A51-D299CC13321A}" TmcPath="PLC\PLC.tmc">
<Name>PLC Instance</Name>
<CLSID ClassFactory="TcPlc30">{08500001-0000-0000-F000-000000000064}</CLSID>
<Vars VarGrpType="2" AreaNo="1">
@@ -7191,32 +7191,32 @@
<SuName>BMS</SuName>
<MBoxUserCmdData>004003000a0000001f000000030010000000000000000000000000000000000020f31005020000000100456e61626c6520446961674d65737361676520617320656d657267656e637900</MBoxUserCmdData>
<Pdo Name="ConnectionInputs" Index="#x1a00" Flags="#x2011" SyncMan="3">
<Entry Name="Not_Halt_Global.-46K1 (EL2904) - Module 1 (FSOES)_13 TxPDO" Index="#x7000" Sub="#x01">
<Entry Name="NotHaltString1.NotHaltInterface_26 TxPDO" Index="#x7000" Sub="#x01">
<Type GUID="{2438F91B-E188-4ED7-8594-54354F9ED6A4}" Namespace="Safety">FSOE_6</Type>
</Entry>
<Entry Name="Not_Halt_Global.-45K1 (EL1918) - Module 1 (FSOE)_14 TxPDO" Index="#x7000" Sub="#x02">
<Entry Name="NotHaltString2.NotHAltInterface_27 TxPDO" Index="#x7000" Sub="#x02">
<Type GUID="{2438F91B-E188-4ED7-8594-54354F9ED6A4}" Namespace="Safety">FSOE_6</Type>
</Entry>
<Entry Name="NotHaltString1.NotHaltInterface_26 TxPDO" Index="#x7000" Sub="#x03">
<Entry Name="Not_Halt_Global.-46K1 (EL2904) - Module 1 (FSOES)_13 TxPDO" Index="#x7000" Sub="#x03">
<Type GUID="{2438F91B-E188-4ED7-8594-54354F9ED6A4}" Namespace="Safety">FSOE_6</Type>
</Entry>
<Entry Name="NotHaltString2.NotHAltInterface_27 TxPDO" Index="#x7000" Sub="#x04">
<Entry Name="Not_Halt_Global.-45K1 (EL1918) - Module 1 (FSOE)_14 TxPDO" Index="#x7000" Sub="#x04">
<Type GUID="{2438F91B-E188-4ED7-8594-54354F9ED6A4}" Namespace="Safety">FSOE_6</Type>
</Entry>
</Pdo>
<Pdo Name="ConnectionOutputs" Index="#x1600" InOut="1" Flags="#x2011" SyncMan="2">
<Entry Name="Not_Halt_Global.-46K1 (EL2904) - Module 1 (FSOES)_13 RxPDO" Index="#x6000" Sub="#x01">
<Entry Name="NotHaltString1.NotHaltInterface_26 RxPDO" Index="#x6000" Sub="#x01">
<Type GUID="{2438F91B-E188-4ED7-8594-54354F9ED6A4}" Namespace="Safety">FSOE_6</Type>
</Entry>
<Entry Name="Not_Halt_Global.-45K1 (EL1918) - Module 1 (FSOE)_14 RxPDO" Index="#x6000" Sub="#x02">
<Entry Name="NotHaltString2.NotHAltInterface_27 RxPDO" Index="#x6000" Sub="#x02">
<Type GUID="{2438F91B-E188-4ED7-8594-54354F9ED6A4}" Namespace="Safety">FSOE_6</Type>
</Entry>
<Entry Name="Not_Halt_Global.-46K1 (EL2904) - Module 1 (FSOES)_13 RxPDO" Index="#x6000" Sub="#x03">
<Type GUID="{2438F91B-E188-4ED7-8594-54354F9ED6A4}" Namespace="Safety">FSOE_6</Type>
</Entry>
<Entry Name="Not_Halt_Global.-45K1 (EL1918) - Module 1 (FSOE)_14 RxPDO" Index="#x6000" Sub="#x04">
<Type GUID="{B05FDAB7-3241-ACD3-D16C-0FDAF8825BC9}">FSOE_7</Type>
</Entry>
<Entry Name="NotHaltString1.NotHaltInterface_26 RxPDO" Index="#x6000" Sub="#x03">
<Type GUID="{2438F91B-E188-4ED7-8594-54354F9ED6A4}" Namespace="Safety">FSOE_6</Type>
</Entry>
<Entry Name="NotHaltString2.NotHAltInterface_27 RxPDO" Index="#x6000" Sub="#x04">
<Type GUID="{2438F91B-E188-4ED7-8594-54354F9ED6A4}" Namespace="Safety">FSOE_6</Type>
</Entry>
</Pdo>
<Pdo Name="StandardInputs" Index="#x1bf0" Flags="#x2011" SyncMan="3">
<Entry Name="Not_Halt_Global.EStopOk_18" Index="#x7000" Sub="#x01">