Merge pull request 'MTN6-207' (#8) from ilia-branch into main

Reviewed-on: #8
This commit is contained in:
gigi.mamaladze 2025-05-23 16:42:24 +00:00
commit cec1293f2b
3 changed files with 281 additions and 156 deletions

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<RSLogix5000Content SchemaRevision="1.0" SoftwareRevision="36.00" TargetName="MTN6_Simulations" TargetType="Controller" ContainsContext="false" ExportDate="Fri May 23 11:18:50 2025" ExportOptions="NoRawData L5KData DecoratedData ForceProtectedEncoding AllProjDocTrans">
<Controller Use="Target" Name="MTN6_Simulations" ProcessorType="1756-L81ES" MajorRev="36" MinorRev="11" ProjectCreationDate="Fri May 23 11:04:19 2025" LastModifiedDate="Fri May 23 11:13:58 2025" SFCExecutionControl="CurrentActive" SFCRestartPosition="MostRecent" SFCLastScan="DontScan" ProjectSN="16#015e_1b97"
<RSLogix5000Content SchemaRevision="1.0" SoftwareRevision="36.00" TargetName="MTN6_Simulations" TargetType="Controller" ContainsContext="false" ExportDate="Fri May 23 20:37:57 2025" ExportOptions="NoRawData L5KData DecoratedData ForceProtectedEncoding AllProjDocTrans">
<Controller Use="Target" Name="MTN6_Simulations" ProcessorType="1756-L81ES" MajorRev="36" MinorRev="11" ProjectCreationDate="Fri May 23 11:59:53 2025" LastModifiedDate="Fri May 23 20:37:36 2025" SFCExecutionControl="CurrentActive" SFCRestartPosition="MostRecent" SFCLastScan="DontScan" ProjectSN="16#015e_1b97"
MatchProjectToController="false" CanUseRPIFromProducer="false" InhibitAutomaticFirmwareUpdate="0" PassThroughConfiguration="EnabledWithAppend" DownloadProjectDocumentationAndExtendedProperties="true" DownloadProjectCustomProperties="true" ReportMinorOverflow="false" AutoDiagsEnabled="true" WebServerEnabled="false">
<RedundancyInfo Enabled="false" KeepTestEditsOnSwitchOver="false"/>
<Security Code="0" ChangesToDetect="16#ffff_ffff_ffff_ffff"/>
@ -4957,7 +4957,7 @@ NEEDS CLARIFICATION]]>
</Routine>
</Routines>
</AddOnInstructionDefinition>
<AddOnInstructionDefinition Name="AOI_STATION_JR_PB" Class="Standard" Revision="1.0" Vendor="Automation Standard" ExecutePrescan="true" ExecutePostscan="false" ExecuteEnableInFalse="false" CreatedDate="2011-11-21T15:10:22.337Z" CreatedBy="Not Available" EditedDate="2025-05-22T14:58:48.318Z" EditedBy="LCIBATUMI\ilia.gurielidze"
<AddOnInstructionDefinition Name="AOI_STATION_JR_PB" Class="Standard" Revision="1.0" Vendor="Automation Standard" ExecutePrescan="true" ExecutePostscan="false" ExecuteEnableInFalse="false" CreatedDate="2011-11-21T15:10:22.337Z" CreatedBy="Not Available" EditedDate="2025-05-23T14:52:43.614Z" EditedBy="LCIBATUMI\ilia.gurielidze"
SoftwareRevision="v36.00">
<Description>
<![CDATA[JAM RESET STATION PUSH BUTTON
@ -5024,13 +5024,21 @@ NEEDS CLARIFICATION]]>
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</LocalTag>
<LocalTag Name="EMPTY_STRING" DataType="STRING" ExternalAccess="None">
<DefaultData Format="L5K">
<![CDATA[[0,'$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00']]]>
</DefaultData>
<DefaultData Format="String" Length="0">
<![CDATA['']]>
</DefaultData>
</LocalTag>
</LocalTags>
<Routines>
<Routine Name="Logic" Type="RLL">
<RLLContent>
<Rung Number="0" Type="N">
<Text>
<![CDATA[MOVE(CTRL.STS.Log,CTRL.STS.Log);]]>
<![CDATA[MOVE(CTRL.CMD.Log,CTRL.STS.Log);]]>
</Text>
</Rung>
<Rung Number="1" Type="N">
@ -5085,7 +5093,7 @@ NEEDS CLARIFICATION]]>
</Rung>
<Rung Number="9" Type="N">
<Text>
<![CDATA[OTU(CTRL.CMD.Jammed)MOVE('',CTRL.CMD.Log);]]>
<![CDATA[MOVE('',CTRL.CMD.Log)OTU(CTRL.CMD.Jammed);]]>
</Text>
</Rung>
</RLLContent>
@ -6160,140 +6168,51 @@ NEEDS CLARIFICATION]]>
<Tags>
<Tag Name="Jammed" Class="Standard" TagType="Base" DataType="BOOL" Radix="Decimal" Constant="false" ExternalAccess="Read/Write" OpcUaAccess="None">
<Data Format="L5K">
<![CDATA[1]]>
<![CDATA[0]]>
</Data>
<Data Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="1"/>
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</Data>
</Tag>
<Tag Name="Jam_Timer" Class="Standard" TagType="Base" DataType="TIMER" Constant="false" ExternalAccess="Read/Write" OpcUaAccess="None">
<Data Format="L5K">
<![CDATA[[-1608136444,3000,3000]]]>
<![CDATA[[0,3000,0]]]>
</Data>
<Data Format="Decorated">
<Structure DataType="TIMER">
<DataValueMember Name="PRE" DataType="DINT" Radix="Decimal" Value="3000"/>
<DataValueMember Name="ACC" DataType="DINT" Radix="Decimal" Value="3000"/>
<DataValueMember Name="EN" DataType="BOOL" Value="1"/>
<DataValueMember Name="ACC" DataType="DINT" Radix="Decimal" Value="0"/>
<DataValueMember Name="EN" DataType="BOOL" Value="0"/>
<DataValueMember Name="TT" DataType="BOOL" Value="0"/>
<DataValueMember Name="DN" DataType="BOOL" Value="1"/>
<DataValueMember Name="DN" DataType="BOOL" Value="0"/>
</Structure>
</Data>
</Tag>
<Tag Name="Run_Conveyor" Class="Standard" TagType="Base" DataType="BOOL" Radix="Decimal" Constant="false" ExternalAccess="Read/Write" OpcUaAccess="None">
<Data Format="L5K">
<![CDATA[0]]>
<![CDATA[1]]>
</Data>
<Data Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
<DataValue DataType="BOOL" Radix="Decimal" Value="1"/>
</Data>
</Tag>
<Tag Name="UL1_3_JPE1_OIP" Class="Standard" TagType="Base" DataType="BOOL" Radix="Decimal" Constant="false" ExternalAccess="Read/Write" OpcUaAccess="None">
<Data Format="L5K">
<![CDATA[1]]>
</Data>
<Data Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="1"/>
</Data>
</Tag>
<Tag Name="UL1_3_JR_PB1" Class="Standard" TagType="Base" DataType="UDT_AOI_STATION_JR_PB" Constant="false" ExternalAccess="Read/Write" OpcUaAccess="None">
<Data Format="L5K">
<![CDATA[[[27,0],[[0,'$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00'
],[0,'$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00'
],[0,'$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00'
],[0],0,2,0,1],[[1,[0,'$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00'
]],[0,[0,'$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00'
],1]]]]]>
</Data>
<Data Format="Decorated">
<Structure DataType="UDT_AOI_STATION_JR_PB">
<StructureMember Name="AOI" DataType="AOI_STATION_JR_PB">
<DataValueMember Name="EnableIn" DataType="BOOL" Value="1"/>
<DataValueMember Name="EnableOut" DataType="BOOL" Value="1"/>
<DataValueMember Name="In_JR_PB" DataType="BOOL" Value="0"/>
<DataValueMember Name="Out_JR_PB_LT" DataType="BOOL" Value="1"/>
</StructureMember>
<StructureMember Name="HMI" DataType="UDT_HMI_STATION">
<StructureMember Name="Name" DataType="STRING">
<DataValueMember Name="LEN" DataType="DINT" Radix="Decimal" Value="0"/>
<DataValueMember Name="DATA" DataType="STRING" Radix="ASCII">
<![CDATA[]]>
</DataValueMember>
</StructureMember>
<StructureMember Name="MCM_Name" DataType="STRING">
<DataValueMember Name="LEN" DataType="DINT" Radix="Decimal" Value="0"/>
<DataValueMember Name="DATA" DataType="STRING" Radix="ASCII">
<![CDATA[]]>
</DataValueMember>
</StructureMember>
<StructureMember Name="Conveyor_Name" DataType="STRING">
<DataValueMember Name="LEN" DataType="DINT" Radix="Decimal" Value="0"/>
<DataValueMember Name="DATA" DataType="STRING" Radix="ASCII">
<![CDATA[]]>
</DataValueMember>
</StructureMember>
<StructureMember Name="Alarm" DataType="UDT_ALARMS_STATION">
<DataValueMember Name="EStopped" DataType="BOOL" Value="0"/>
<DataValueMember Name="Stopped" DataType="BOOL" Value="0"/>
</StructureMember>
<DataValueMember Name="Start_PB" DataType="BOOL" Value="0"/>
<DataValueMember Name="Stop_PB" DataType="BOOL" Value="0"/>
<DataValueMember Name="Start_Color" DataType="DINT" Radix="Decimal" Value="2"/>
<DataValueMember Name="Stop_Color" DataType="DINT" Radix="Decimal" Value="0"/>
<DataValueMember Name="JR_PB_LT" DataType="BOOL" Value="1"/>
</StructureMember>
<StructureMember Name="CTRL" DataType="UDT_CTRL_STATION">
<StructureMember Name="CMD" DataType="UDT_CTRL_STATION_CMD">
<DataValueMember Name="Jammed" DataType="BOOL" Value="1"/>
<DataValueMember Name="EStop_Actuated" DataType="BOOL" Value="0"/>
<StructureMember Name="Log" DataType="STRING">
<DataValueMember Name="LEN" DataType="DINT" Radix="Decimal" Value="0"/>
<DataValueMember Name="DATA" DataType="STRING" Radix="ASCII">
<![CDATA[]]>
</DataValueMember>
</StructureMember>
</StructureMember>
<StructureMember Name="STS" DataType="UDT_CTRL_STATION_STS">
<DataValueMember Name="Start" DataType="BOOL" Value="0"/>
<DataValueMember Name="Stop" DataType="BOOL" Value="0"/>
<DataValueMember Name="EStop_Was_Actuated" DataType="BOOL" Value="0"/>
<StructureMember Name="Log" DataType="STRING">
<DataValueMember Name="LEN" DataType="DINT" Radix="Decimal" Value="0"/>
<DataValueMember Name="DATA" DataType="STRING" Radix="ASCII">
<![CDATA[]]>
</DataValueMember>
</StructureMember>
<DataValueMember Name="JR_PB_LT" DataType="BOOL" Value="1"/>
<DataValueMember Name="Jam_Fault" DataType="BOOL" Value="0"/>
</StructureMember>
</StructureMember>
</Structure>
</Data>
</Tag>
<Tag Name="UL1_3_JR_PB1_LT_OIP" Class="Standard" TagType="Base" DataType="BOOL" Radix="Decimal" Constant="false" ExternalAccess="Read/Write" OpcUaAccess="None">
<Data Format="L5K">
<![CDATA[1]]>
</Data>
<Data Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="1"/>
</Data>
</Tag>
<Tag Name="UL1_3_JR_PB1_OIP" Class="Standard" TagType="Base" DataType="BOOL" Radix="Decimal" Constant="false" ExternalAccess="Read/Write" OpcUaAccess="None">
<Data Format="L5K">
<![CDATA[0]]>
</Data>
<Data Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</Data>
</Tag>
<Tag Name="UL1_3_JR_PB2" Class="Standard" TagType="Base" DataType="UDT_AOI_STATION_JR_PB" Constant="false" ExternalAccess="Read/Write" OpcUaAccess="None">
<Tag Name="UL1_3_JR_PB1" Class="Standard" TagType="Base" DataType="UDT_AOI_STATION_JR_PB" Constant="false" ExternalAccess="Read/Write" OpcUaAccess="None">
<Data Format="L5K">
<![CDATA[[[11,0],[[0,'$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00'
<![CDATA[[[3,0,[0,'$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00'
]],[[0,'$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00'
],[0,'$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00'
],[0,'$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00'
],[0],0,2,0,1],[[0,[0,'$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00'
]],[0,[0,'$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00'
],1]]]]]>
],[0],0,4,0,0],[[0,[0,'UL1_3 Jammeded$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00'
]],[0,[0,'UL1_3 Jammed$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00'
],0]]]]]>
</Data>
<Data Format="Decorated">
<Structure DataType="UDT_AOI_STATION_JR_PB">
@ -6301,7 +6220,7 @@ NEEDS CLARIFICATION]]>
<DataValueMember Name="EnableIn" DataType="BOOL" Value="1"/>
<DataValueMember Name="EnableOut" DataType="BOOL" Value="1"/>
<DataValueMember Name="In_JR_PB" DataType="BOOL" Value="0"/>
<DataValueMember Name="Out_JR_PB_LT" DataType="BOOL" Value="1"/>
<DataValueMember Name="Out_JR_PB_LT" DataType="BOOL" Value="0"/>
</StructureMember>
<StructureMember Name="HMI" DataType="UDT_HMI_STATION">
<StructureMember Name="Name" DataType="STRING">
@ -6328,9 +6247,9 @@ NEEDS CLARIFICATION]]>
</StructureMember>
<DataValueMember Name="Start_PB" DataType="BOOL" Value="0"/>
<DataValueMember Name="Stop_PB" DataType="BOOL" Value="0"/>
<DataValueMember Name="Start_Color" DataType="DINT" Radix="Decimal" Value="2"/>
<DataValueMember Name="Start_Color" DataType="DINT" Radix="Decimal" Value="4"/>
<DataValueMember Name="Stop_Color" DataType="DINT" Radix="Decimal" Value="0"/>
<DataValueMember Name="JR_PB_LT" DataType="BOOL" Value="1"/>
<DataValueMember Name="JR_PB_LT" DataType="BOOL" Value="0"/>
</StructureMember>
<StructureMember Name="CTRL" DataType="UDT_CTRL_STATION">
<StructureMember Name="CMD" DataType="UDT_CTRL_STATION_CMD">
@ -6353,7 +6272,98 @@ NEEDS CLARIFICATION]]>
<![CDATA[]]>
</DataValueMember>
</StructureMember>
<DataValueMember Name="JR_PB_LT" DataType="BOOL" Value="1"/>
<DataValueMember Name="JR_PB_LT" DataType="BOOL" Value="0"/>
<DataValueMember Name="Jam_Fault" DataType="BOOL" Value="0"/>
</StructureMember>
</StructureMember>
</Structure>
</Data>
</Tag>
<Tag Name="UL1_3_JR_PB1_LT_OIP" Class="Standard" TagType="Base" DataType="BOOL" Radix="Decimal" Constant="false" ExternalAccess="Read/Write" OpcUaAccess="None">
<Data Format="L5K">
<![CDATA[0]]>
</Data>
<Data Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</Data>
</Tag>
<Tag Name="UL1_3_JR_PB1_OIP" Class="Standard" TagType="Base" DataType="BOOL" Radix="Decimal" Constant="false" ExternalAccess="Read/Write" OpcUaAccess="None">
<Data Format="L5K">
<![CDATA[0]]>
</Data>
<Data Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</Data>
</Tag>
<Tag Name="UL1_3_JR_PB2" Class="Standard" TagType="Base" DataType="UDT_AOI_STATION_JR_PB" Constant="false" ExternalAccess="Read/Write" OpcUaAccess="None">
<Data Format="L5K">
<![CDATA[[[3,0,[0,'$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00'
]],[[0,'$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00'
],[0,'$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00'
],[0,'$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00'
],[0],0,4,0,0],[[0,[0,'UL1_3 Jammeded$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00'
]],[0,[0,'$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00'
],0]]]]]>
</Data>
<Data Format="Decorated">
<Structure DataType="UDT_AOI_STATION_JR_PB">
<StructureMember Name="AOI" DataType="AOI_STATION_JR_PB">
<DataValueMember Name="EnableIn" DataType="BOOL" Value="1"/>
<DataValueMember Name="EnableOut" DataType="BOOL" Value="1"/>
<DataValueMember Name="In_JR_PB" DataType="BOOL" Value="0"/>
<DataValueMember Name="Out_JR_PB_LT" DataType="BOOL" Value="0"/>
</StructureMember>
<StructureMember Name="HMI" DataType="UDT_HMI_STATION">
<StructureMember Name="Name" DataType="STRING">
<DataValueMember Name="LEN" DataType="DINT" Radix="Decimal" Value="0"/>
<DataValueMember Name="DATA" DataType="STRING" Radix="ASCII">
<![CDATA[]]>
</DataValueMember>
</StructureMember>
<StructureMember Name="MCM_Name" DataType="STRING">
<DataValueMember Name="LEN" DataType="DINT" Radix="Decimal" Value="0"/>
<DataValueMember Name="DATA" DataType="STRING" Radix="ASCII">
<![CDATA[]]>
</DataValueMember>
</StructureMember>
<StructureMember Name="Conveyor_Name" DataType="STRING">
<DataValueMember Name="LEN" DataType="DINT" Radix="Decimal" Value="0"/>
<DataValueMember Name="DATA" DataType="STRING" Radix="ASCII">
<![CDATA[]]>
</DataValueMember>
</StructureMember>
<StructureMember Name="Alarm" DataType="UDT_ALARMS_STATION">
<DataValueMember Name="EStopped" DataType="BOOL" Value="0"/>
<DataValueMember Name="Stopped" DataType="BOOL" Value="0"/>
</StructureMember>
<DataValueMember Name="Start_PB" DataType="BOOL" Value="0"/>
<DataValueMember Name="Stop_PB" DataType="BOOL" Value="0"/>
<DataValueMember Name="Start_Color" DataType="DINT" Radix="Decimal" Value="4"/>
<DataValueMember Name="Stop_Color" DataType="DINT" Radix="Decimal" Value="0"/>
<DataValueMember Name="JR_PB_LT" DataType="BOOL" Value="0"/>
</StructureMember>
<StructureMember Name="CTRL" DataType="UDT_CTRL_STATION">
<StructureMember Name="CMD" DataType="UDT_CTRL_STATION_CMD">
<DataValueMember Name="Jammed" DataType="BOOL" Value="0"/>
<DataValueMember Name="EStop_Actuated" DataType="BOOL" Value="0"/>
<StructureMember Name="Log" DataType="STRING">
<DataValueMember Name="LEN" DataType="DINT" Radix="Decimal" Value="0"/>
<DataValueMember Name="DATA" DataType="STRING" Radix="ASCII">
<![CDATA[]]>
</DataValueMember>
</StructureMember>
</StructureMember>
<StructureMember Name="STS" DataType="UDT_CTRL_STATION_STS">
<DataValueMember Name="Start" DataType="BOOL" Value="0"/>
<DataValueMember Name="Stop" DataType="BOOL" Value="0"/>
<DataValueMember Name="EStop_Was_Actuated" DataType="BOOL" Value="0"/>
<StructureMember Name="Log" DataType="STRING">
<DataValueMember Name="LEN" DataType="DINT" Radix="Decimal" Value="0"/>
<DataValueMember Name="DATA" DataType="STRING" Radix="ASCII">
<![CDATA[]]>
</DataValueMember>
</StructureMember>
<DataValueMember Name="JR_PB_LT" DataType="BOOL" Value="0"/>
<DataValueMember Name="Jam_Fault" DataType="BOOL" Value="0"/>
</StructureMember>
</StructureMember>
@ -6362,10 +6372,10 @@ NEEDS CLARIFICATION]]>
</Tag>
<Tag Name="UL1_3_JR_PB2_LT_OIP" Class="Standard" TagType="Base" DataType="BOOL" Radix="Decimal" Constant="false" ExternalAccess="Read/Write" OpcUaAccess="None">
<Data Format="L5K">
<![CDATA[1]]>
<![CDATA[0]]>
</Data>
<Data Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="1"/>
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</Data>
</Tag>
<Tag Name="UL1_3_JR_PB2_OIP" Class="Standard" TagType="Base" DataType="BOOL" Radix="Decimal" Constant="false" ExternalAccess="Read/Write" OpcUaAccess="None">
@ -6386,10 +6396,10 @@ NEEDS CLARIFICATION]]>
</Tag>
<Tag Name="UL1_3_OIP" Class="Standard" TagType="Base" DataType="REAL" Radix="Float" Constant="false" ExternalAccess="Read/Write" OpcUaAccess="None">
<Data Format="L5K">
<![CDATA[0.00000000e+000]]>
<![CDATA[2.00000000e+000]]>
</Data>
<Data Format="Decorated">
<DataValue DataType="REAL" Radix="Float" Value="0.0"/>
<DataValue DataType="REAL" Radix="Float" Value="2.0"/>
</Data>
</Tag>
<Tag Name="UL1_3_VFD1" Class="Standard" TagType="Base" DataType="UDT_AOI_VFD" Constant="false" ExternalAccess="Read/Write" OpcUaAccess="None">
@ -6556,47 +6566,52 @@ NEEDS CLARIFICATION]]>
<RLLContent>
<Rung Number="0" Type="N">
<Text>
<![CDATA[JSR(R_STATION_JR,0);]]>
<![CDATA[XIC(s:fs)OTU(Jammed);]]>
</Text>
</Rung>
<Rung Number="1" Type="N">
<Text>
<![CDATA[XIC(Run_Conveyor)MOVE(2,UL1_3_OIP);]]>
<![CDATA[JSR(R_STATION_JR,0);]]>
</Text>
</Rung>
<Rung Number="2" Type="N">
<Text>
<![CDATA[XIO(Run_Conveyor)MOVE(0,UL1_3_OIP);]]>
<![CDATA[XIC(Run_Conveyor)MOVE(2,UL1_3_OIP);]]>
</Text>
</Rung>
<Rung Number="3" Type="N">
<Text>
<![CDATA[XIC(UL1_3_JPE1_OIP)XIC(UL1_3_VFD1.CTRL.STS.MCM_Started)TON(Jam_Timer,?,?);]]>
<![CDATA[XIO(Run_Conveyor)MOVE(0,UL1_3_OIP);]]>
</Text>
</Rung>
<Rung Number="4" Type="N">
<Text>
<![CDATA[XIO(Jammed)XIC(UL1_3_VFD1.CTRL.STS.MCM_Started)OTL(Run_Conveyor);]]>
<![CDATA[XIC(UL1_3_JPE1_OIP)XIC(UL1_3_VFD1.CTRL.STS.MCM_Started)TON(Jam_Timer,?,?);]]>
</Text>
</Rung>
<Rung Number="5" Type="N">
<Text>
<![CDATA[XIC(Jam_Timer.DN)OTL(Jammed);]]>
<![CDATA[XIO(Jammed)XIC(UL1_3_VFD1.CTRL.STS.MCM_Started)OTL(Run_Conveyor);]]>
</Text>
</Rung>
<Rung Number="6" Type="N">
<Text>
<![CDATA[XIO(UL1_3_VFD1.CTRL.STS.MCM_Started)OTU(Run_Conveyor);]]>
<![CDATA[XIC(Jam_Timer.DN)OTL(Jammed);]]>
</Text>
</Rung>
<Rung Number="7" Type="N">
<Text>
<![CDATA[XIC(Jammed)[OTU(Run_Conveyor) ,OTL(UL1_3_JR_PB1.CTRL.CMD.Jammed) ];]]>
<![CDATA[XIO(UL1_3_VFD1.CTRL.STS.MCM_Started)OTU(Run_Conveyor);]]>
</Text>
</Rung>
<Rung Number="8" Type="N">
<Text>
<![CDATA[XIC(Jammed)XIO(UL1_3_JPE1_OIP)XIC(UL1_3_JR_PB1.CTRL.STS.Start)RES(Jam_Timer)[OTU(UL1_3_JR_PB1.CTRL.CMD.Jammed) ,OTU(Jammed) ];]]>
<![CDATA[XIC(Jammed)MOVE('UL1_3 Jammed',UL1_3_JR_PB1.CTRL.CMD.Log)[OTU(Run_Conveyor) ,OTL(UL1_3_JR_PB1.CTRL.CMD.Jammed) ];]]>
</Text>
</Rung>
<Rung Number="9" Type="N">
<Text>
<![CDATA[XIC(Jammed)XIO(UL1_3_JPE1_OIP)XIC(UL1_3_JR_PB1.CTRL.STS.Start)[OTU(Jammed) ,RES(Jam_Timer) ];]]>
</Text>
</Rung>
</RLLContent>
@ -6605,12 +6620,12 @@ NEEDS CLARIFICATION]]>
<RLLContent>
<Rung Number="0" Type="N">
<Text>
<![CDATA[AOI_STATION_JR_PB(UL1_3_JR_PB1.AOI,UL1_3_JR_PB1.HMI,UL1_3_JR_PB1.CTRL,UL1_3_JR_PB2.CTRL,UL1_3_VFD1.CTRL,UL1_3_JR_PB1_OIP,UL1_3_JR_PB1_LT_OIP);]]>
<![CDATA[AOI_STATION_JR_PB(UL1_3_JR_PB1.AOI,UL1_3_JR_PB1.HMI,UL1_3_JR_PB1.CTRL,UL1_3_JR_PB2.CTRL,UL1_3_VFD1.CTRL,UL1_3_JR_PB1_OIP,UL1_3_JR_PB1_LT_OIP)MOVE(UL1_3_JR_PB1.CTRL.STS.Log,UL1_3_JR_PB1.CTRL.STS.Log);]]>
</Text>
</Rung>
<Rung Number="1" Type="N">
<Text>
<![CDATA[AOI_STATION_JR_PB(UL1_3_JR_PB2.AOI,UL1_3_JR_PB2.HMI,UL1_3_JR_PB2.CTRL,UL1_3_JR_PB1.CTRL,UL1_3_VFD1.CTRL,UL1_3_JR_PB2_OIP,UL1_3_JR_PB2_LT_OIP);]]>
<![CDATA[AOI_STATION_JR_PB(UL1_3_JR_PB2.AOI,UL1_3_JR_PB2.HMI,UL1_3_JR_PB2.CTRL,UL1_3_JR_PB1.CTRL,UL1_3_VFD1.CTRL,UL1_3_JR_PB2_OIP,UL1_3_JR_PB2_LT_OIP)MOVE(UL1_3_JR_PB2.CTRL.STS.Log,UL1_3_JR_PB2.CTRL.STS.Log);]]>
</Text>
</Rung>
</RLLContent>

View File

@ -1,19 +1,19 @@
[gd_scene load_steps=14 format=4 uid="uid://bbt38yd6yc0sc"]
[ext_resource type="PackedScene" uid="uid://dyhvoundu2kqc" path="res://parts/Building.tscn" id="1_1gfko"]
[ext_resource type="PackedScene" uid="uid://bqlkj4ar8q1ws" path="res://parts/assemblies/BeltConveyorAssembly.tscn" id="3_uobxk"]
[ext_resource type="PackedScene" uid="uid://c1mup2vown0ak" path="res://parts/BladeStop.tscn" id="4_mpm82"]
[ext_resource type="PackedScene" uid="uid://bl73u0rvt2orv" path="res://parts/Despawner.tscn" id="5_uobxk"]
[ext_resource type="PackedScene" uid="uid://co2mqmdwpn57w" path="res://parts/BoxSpawner.tscn" id="5_vtp77"]
[ext_resource type="PackedScene" uid="uid://dvjrx5crpqs5f" path="res://parts/SideGuard.tscn" id="7_qdflh"]
[ext_resource type="Shader" uid="uid://wtu5yyfpdcgl" path="res://assets/3DModels/Shaders/MetalShaderSideGuard.tres" id="8_crdol"]
[ext_resource type="PackedScene" uid="uid://gddgyvex6gdj" path="res://parts/PushButton.tscn" id="9_crdol"]
[ext_resource type="PackedScene" uid="uid://kdpe7o4ec1fa" path="res://parts/DiffuseSensor.tscn" id="12_lsr5j"]
[ext_resource type="Script" uid="uid://mk68t7o3rd8u" path="res://utils.gd" id="14_wqnqx"]
[ext_resource type="PackedScene" uid="uid://dyhvoundu2kqc" path="res://parts/Building.tscn" id="1_3b5ec"]
[ext_resource type="PackedScene" uid="uid://bqlkj4ar8q1ws" path="res://parts/assemblies/BeltConveyorAssembly.tscn" id="2_rxahx"]
[ext_resource type="PackedScene" uid="uid://c1mup2vown0ak" path="res://parts/BladeStop.tscn" id="3_gvmjx"]
[ext_resource type="PackedScene" uid="uid://co2mqmdwpn57w" path="res://parts/BoxSpawner.tscn" id="4_6eg1i"]
[ext_resource type="PackedScene" uid="uid://bl73u0rvt2orv" path="res://parts/Despawner.tscn" id="5_rcr4s"]
[ext_resource type="PackedScene" uid="uid://dvjrx5crpqs5f" path="res://parts/SideGuard.tscn" id="6_a36lg"]
[ext_resource type="Shader" uid="uid://wtu5yyfpdcgl" path="res://assets/3DModels/Shaders/MetalShaderSideGuard.tres" id="7_huqq8"]
[ext_resource type="PackedScene" uid="uid://gddgyvex6gdj" path="res://parts/PushButton.tscn" id="8_kfv3x"]
[ext_resource type="PackedScene" uid="uid://kdpe7o4ec1fa" path="res://parts/DiffuseSensor.tscn" id="9_bk1n2"]
[ext_resource type="Script" uid="uid://mk68t7o3rd8u" path="res://utils.gd" id="10_ow4ia"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_wqnqx"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_3b5ec"]
render_priority = 0
shader = ExtResource("8_crdol")
shader = ExtResource("7_huqq8")
shader_parameter/Scale = 3.70031
shader_parameter/Metallic = 0.94
shader_parameter/Roughness = 0.5
@ -33,7 +33,7 @@ _surfaces = [{
}]
blend_shape_mode = 0
[sub_resource type="ArrayMesh" id="ArrayMesh_powme"]
[sub_resource type="ArrayMesh" id="ArrayMesh_rxahx"]
resource_name = "RCSideGuard_RCSideGuard"
_surfaces = [{
"aabb": AABB(-0.5, -0.00427932, -1.12983, 1, 0.604281, 0.169856),
@ -41,7 +41,7 @@ _surfaces = [{
"format": 34896613399,
"index_count": 204,
"index_data": PackedByteArray("AgAJAAcAAgAMAAkALAAIACgALAAGAAgADAAgACIADAADACAAHQAjACEAHQAmACMAHQAaACYAHQAYABoALwApADEALwAtACkAEQAyABMAEQAwADIAEAA3ADUAEAASADcAPQBCAEYAPQBBAEIAbQBDAEAAbQBpAEMARwBeADwARwBhAF4AWgBgAGUAWgBfAGAAWwBWAFQAWwBkAFYAcQBoAGwAcQByAGgATABzAHAATABPAHMATQB6AE4ATQB4AHoABAA7AAAABAA+ADsADgBFAAsADgBIAEUACgBqACoACgBEAGoAJABJAA0AJABjAEkAAQBcAB4AAQA6AFwAHwBYABwAHwBdAFgAJwBiACUAJwBnAGIAGwBmACcAGwBXAGYAHABSABYAHABZAFIAKgB0ADMAKgBqAHQAKwA/AAUAKwBrAD8ALgBrACsALgBuAGsAMwBQABQAMwB1AFAANABKAA8ANAB2AEoADwBvAC4ADwBLAG8AFQB7ADkAFQBRAHsAFwBVABkAFwBTAFUAOAB3ADYAOAB5AHcA"),
"material": SubResource("ShaderMaterial_wqnqx"),
"material": SubResource("ShaderMaterial_3b5ec"),
"name": "BeltTopDown",
"primitive": 3,
"uv_scale": Vector4(0, 0, 0, 0),
@ -53,9 +53,9 @@ shadow_mesh = SubResource("ArrayMesh_gn6s2")
[node name="Simulation" type="Node3D"]
[node name="Building" parent="." instance=ExtResource("1_1gfko")]
[node name="Building" parent="." instance=ExtResource("1_3b5ec")]
[node name="UL1_3" parent="." instance=ExtResource("3_uobxk")]
[node name="UL1_3" parent="." instance=ExtResource("2_rxahx")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.00308008, -0.308412, -1.61317)
local_floor_plane = Plane(0, 1, 0, -1.69159)
enable_comms = true
@ -65,21 +65,22 @@ metadata/hijack_scale = true
size = Vector3(14.7823, 0.5, 1.524)
metadata/hijack_scale = true
[node name="BladeStop" parent="." instance=ExtResource("4_mpm82")]
transform = Transform3D(-1, -5.96046e-08, 0, 5.96046e-08, -1, 0, 0, 0, 0.448, 2.55519, 0.984438, -1.69079)
[node name="BladeStop" parent="." instance=ExtResource("3_gvmjx")]
transform = Transform3D(-1, -5.96046e-08, 0, 5.96046e-08, -1, 0, 0, 0, 0.448, 2.55519, 1.10247, -1.69079)
active = true
[node name="BoxSpawner" parent="." instance=ExtResource("5_vtp77")]
[node name="BoxSpawner" parent="." instance=ExtResource("4_6eg1i")]
transform = Transform3D(1, 2.30012e-09, -9.31322e-10, -2.30012e-09, 1, 8.84756e-09, 9.31322e-10, -8.84756e-09, 1, -6.66841, 0.177073, -1.71267)
[node name="Despawner" parent="." instance=ExtResource("5_uobxk")]
[node name="Despawner" parent="." instance=ExtResource("5_rcr4s")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.60256, 0.176073, -1.63491)
[node name="SideGuard" parent="." instance=ExtResource("7_qdflh")]
transform = Transform3D(-3.26884e-07, 1, -1.98606e-08, -1.50447, -1.77722e-08, 0.913615, 3.38066, 8.87834e-08, 0.406579, -0.352454, -0.158379, 1.7058)
mesh = SubResource("ArrayMesh_powme")
[node name="SideGuard" parent="." instance=ExtResource("6_a36lg")]
transform = Transform3D(-3.26872e-07, 1, -1.98591e-08, -1.50447, -1.77722e-08, 0.913615, 3.38066, 8.87797e-08, 0.406579, -0.352454, -0.158379, 1.7058)
mesh = SubResource("ArrayMesh_rxahx")
length = 3.70031
[node name="UL1_3_JR_PB1" parent="." instance=ExtResource("9_crdol")]
[node name="UL1_3_JR_PB1" parent="." instance=ExtResource("8_kfv3x")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.734562, -0.180284, -0.714896)
text = "JR_PB1"
enable_comms = true
@ -88,7 +89,25 @@ pushbutton_tag_name = "UL1_3_JR_PB1_OIP"
lamp_tag_group_name = "TagGroup0"
lamp_tag_name = "UL1_3_JR_PB1_LT_OIP"
[node name="UL1_3_JR_PB2" parent="." instance=ExtResource("9_crdol")]
[node name="HMI_UL1_3_JR_PB1" parent="." instance=ExtResource("8_kfv3x")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.29688, -0.180284, -0.714896)
text = "HMI_JR_PB1"
button_color = Color(1, 1, 1, 1)
enable_comms = true
pushbutton_tag_group_name = "TagGroup0"
pushbutton_tag_name = "UL1_3_JR_PB1.HMI.Start_PB"
lamp_tag_group_name = "TagGroup0"
[node name="HMI_UL1_3_JR_PB2" parent="." instance=ExtResource("8_kfv3x")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.1626, -0.180284, -0.714896)
text = "HMI_JR_PB2"
button_color = Color(1, 1, 1, 1)
enable_comms = true
pushbutton_tag_group_name = "TagGroup0"
pushbutton_tag_name = "UL1_3_JR_PB2.HMI.Start_PB"
lamp_tag_group_name = "TagGroup0"
[node name="UL1_3_JR_PB2" parent="." instance=ExtResource("8_kfv3x")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.914809, -0.180284, -0.714896)
text = "JR_PB2"
enable_comms = true
@ -97,11 +116,10 @@ pushbutton_tag_name = "UL1_3_JR_PB2_OIP"
lamp_tag_group_name = "TagGroup0"
lamp_tag_name = "UL1_3_JR_PB2_LT_OIP"
[node name="UL1_3_JR_PB3" parent="." instance=ExtResource("9_crdol")]
[node name="MCM_Start_PB" parent="." instance=ExtResource("8_kfv3x")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.31822, -0.180284, -0.714896)
text = "MCM_START"
toggle = true
pressed = true
lamp = true
enable_comms = true
pushbutton_tag_group_name = "TagGroup0"
@ -109,11 +127,21 @@ pushbutton_tag_name = "UL1_3_VFD1.CTRL.STS.MCM_Started"
lamp_tag_group_name = "TagGroup0"
lamp_tag_name = "UL1_3_VFD1.CTRL.STS.MCM_Started"
[node name="UL1_3_JPE1" parent="." instance=ExtResource("12_lsr5j")]
[node name="UL1_3_JPE1" parent="." instance=ExtResource("9_bk1n2")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.87801, -0.080121, -2.97105)
max_range = 1.684
enable_comms = true
tag_name = "UL1_3_JPE1_OIP"
[node name="Utils" type="Node" parent="."]
script = ExtResource("14_wqnqx")
script = ExtResource("10_ow4ia")
[node name="HMI_Start_PB" type="Label3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.29096, 0.183071, -0.697029)
text = "HMI
"
[node name="HMI_Start_PB2" type="Label3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.16515, 0.183071, -0.697029)
text = "HMI
"

View File

@ -2,6 +2,88 @@
extends Node
@onready var box_spawner: BoxSpawner = $"../BoxSpawner"
@onready var ul_1_3: BeltConveyorAssembly = $"../UL1_3"
@onready var hmi_start_pb: PushButton = $"../HMI_UL1_3_JR_PB1"
@onready var hmi_ul_1_3_jr_pb_2: PushButton = $"../HMI_UL1_3_JR_PB2"
var color_1
var color_2
var tag_group = "TagGroup0"
var hmi_start_color_1 = "UL1_3_JR_PB1.HMI.Start_Color"
var hmi_start_color_2 = "UL1_3_JR_PB2.HMI.Start_Color"
var display_color_1
var display_color_2
func _ready() -> void:
SimulationEvents.simulation_started.connect(_on_simulation_started)
func _on_simulation_started() -> void:
OIPComms.register_tag(tag_group,hmi_start_color_1,1)
OIPComms.register_tag(tag_group,hmi_start_color_2,1)
OIPComms.register_tag(tag_group, "UL1_3_JR_PB1.CTRL.STS.Log.LEN", 1)
# Register all 82 DATA tags
for i in range(82):
var data_tag = "UL1_3_JR_PB1.CTRL.STS.Log.DATA[" + str(i) + "]"
OIPComms.register_tag(tag_group, data_tag, 1)
func read_string(tag_group_name: String, base_tag_name: String) -> String:
"""Reads the log string from PLC DATA array"""
var result = ""
# Construct the length and data tag names
var len_tag = base_tag_name + ".LEN"
var data_tag = base_tag_name + ".DATA"
# Read the actual string length from PLC (if available)
var string_length = OIPComms.read_int32(tag_group_name, len_tag)
# Limit to 82 max and ensure it's valid
if string_length <= 0 or string_length > 82:
string_length = 82
# Read each character
for i in range(string_length):
var data_tag_indexed = data_tag + "[" + str(i) + "]"
var char_value = OIPComms.read_int8(tag_group_name, data_tag_indexed)
# Check for null terminator or invalid ASCII
# Convert SINT to ASCII character
if char_value > 0 and char_value < 128: # Valid ASCII range
result += char(char_value)
return result
func _physics_process(delta: float) -> void:
box_spawner.disable = ul_1_3.speed == 0
color_1 = OIPComms.read_int32(tag_group,hmi_start_color_1)
color_2 = OIPComms.read_int32(tag_group,hmi_start_color_2)
#print("Log String: ", read_string(tag_group, "UL1_3_JR_PB1.CTRL.STS.Log"))
match color_1:
1:
display_color_1 = Color.CHOCOLATE
2:
display_color_1 = Color.GRAY
3:
display_color_1 = Color.GREEN
4:
display_color_1 = Color.BLACK
_:
display_color_1 = Color.WHITE
match color_2:
1:
display_color_2 = Color.CHOCOLATE
2:
display_color_2 = Color.GRAY
3:
display_color_2 = Color.GREEN
4:
display_color_2 = Color.BLACK
_:
display_color_2 = Color.WHITE
hmi_start_pb.button_color = display_color_1
hmi_ul_1_3_jr_pb_2.button_color = display_color_2