Merge branch 'develop' of keyhammer.steamware.net:CMS-MTConn into develop

This commit is contained in:
Samuele E. Locatelli
2017-03-13 11:09:42 +01:00
39 changed files with 6350 additions and 6045 deletions
+293
View File
@@ -0,0 +1,293 @@
<?xml version="1.0" encoding="UTF-8"?>
<MTConnectDevices xmlns:m="urn:mtconnect.org:MTConnectDevices:1.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:mtconnect.org:MTConnectDevices:1.1" xsi:schemaLocation="urn:mtconnect.org:MTConnectDevices:1.1 http://www.mtconnect.org/schemas/MTConnectDevices_1.1.xsd">
<Header creationTime="2016-04-28T08:44:40+00:00" sender="localhost" instanceId="3" bufferSize="131072" version="1.1"/>
<Devices>
<Device id="demo_123456" iso841Class="6" name="SCM" sampleInterval="10" uuid="000123456">
<Description manufacturer="SCM">Test machine SCM</Description>
<DataItems>
<DataItem category="EVENT" id="AVAIL" type="AVAILABILITY"/>
<DataItem category="EVENT" id="STATUS" type="ACTUATOR_STATE"/>
<DataItem category="SAMPLE" id="ACC_TIME" name="Tempo macchina ON" type="ACCUMULATED_TIME"/>
<DataItem category="SAMPLE" id="ACC_TIME_WORK" name="Tempo macchina in RUN" type="ACCUMULATED_TIME"/>
<DataItem category="SAMPLE" id="CLOCK" type="CLOCK_TIME"/>
<DataItem category="SAMPLE" id="POWER" type="MESSAGE"/>
<DataItem category="EVENT" id="OperatorId" type="MESSAGE"/>
<DataItem category="EVENT" id="FUNCT_MODE" type="MESSAGE"/>
<DataItem category="EVENT" id="USER_ACTION" type="MESSAGE"/>
<DataItem category="EVENT" id="TESTING_DATA" type="MESSAGE"/>
<DataItem category="EVENT" id="PROTECTION_STATUS" type="MESSAGE"/>
<DataItem category="EVENT" id="UNK_STATUS" type="MESSAGE"/>
<DataItem category="EVENT" id="UNK_STROBE" type="MESSAGE"/>
<DataItem category="CONDITION" id="CNC" type="SYSTEM"/>
<DataItem category="CONDITION" id="PLC" type="LOGIC"/>
</DataItems>
<Components>
<Axes id="ax" name="Axes">
<Components>
<Linear id="Axis_01" name="Asse X">
<DataItems>
<!-- descrizione, es "X" che POTREBBE cambiare -->
<DataItem category="EVENT" id="Axis_01_Descr" type="MESSAGE"/>
<DataItem category="SAMPLE" id="Axis_01_PosAct" name="Pos asse X (1) actual" nativeUnits="MILLIMETER" subType="ACTUAL" type="POSITION" units="MILLIMETER"/>
<DataItem category="SAMPLE" id="Axis_01_PosTgt" name="Pos asse X (1) target" nativeUnits="MILLIMETER" subType="COMMANDED" type="POSITION" units="MILLIMETER"/>
<DataItem category="SAMPLE" id="Axis_01_Load" name="Load asse X (1)" nativeUnits="PERCENT" type="LOAD" units="PERCENT"/>
<DataItem category="EVENT" id="Axis_01_MainProc" type="MESSAGE"/>
<DataItem category="EVENT" id="Axis_01_IsMast" type="MESSAGE"/>
<DataItem category="EVENT" id="Axis_01_MastId" type="MESSAGE"/>
<DataItem category="EVENT" id="Axis_01_Dir" type="DIRECTION"/>
<DataItem category="SAMPLE" id="Axis_01_FeedAct" name="FEEDRATE Asse X (1)" subType="ACTUAL" type="AXIS_FEEDRATE" units="MILLIMETER/SECOND"/>
<DataItem category="SAMPLE" id="Axis_01_FeedOver" name="FEEDRATE OVERRIDE Asse X (1)" subType="OVERRIDE" type="AXIS_FEEDRATE" nativeUnits="PERCENT" units="PERCENT"/>
<DataItem category="SAMPLE" id="Axis_01_AccelAct" name="Accelerazione asse X (1)" nativeUnits="MILLIMETER/SECOND^2" type="ACCELERATION" units="MILLIMETER/SECOND^2"/>
<DataItem category="SAMPLE" id="Axis_01_AccTime" name="Tempo impiego cumulato asse X (1)" nativeUnits="SECOND" type="ACCUMULATED_TIME" units="SECOND"/>
<DataItem category="SAMPLE" id="Axis_01_Battery" name="Valore batteria asse X (1)" nativeUnits="VOLT" type="VOLTAGE" units="VOLT"/>
<DataItem category="SAMPLE" id="Axis_01_DistDone" name="Distanza TOTALE percorsa dall'asse X (1)" nativeUnits="METER" type="LENGHT" units="METER"/>
<DataItem category="SAMPLE" id="Axis_01_InvDDone" name="Num cambi direzione asse X (1)" nativeUnits="COUNT" type="MESSAGE" units="COUNT"/>
<DataItem type="TEMPERATURE" id="Temp_01_Value" category="SAMPLE" name="Sonda Temperatura asse 1" units="DEGREE" />
<DataItem category="CONDITION" id="AX01_CNC" type="SYSTEM"/>
<DataItem category="CONDITION" id="AX01_PLC" type="LOGIC"/>
</DataItems>
</Linear>
<Linear id="Axis_02" name="Asse Y">
<DataItems>
<!-- descrizione, es "Asse Y (2)" che POTREBBE cambiare -->
<DataItem category="EVENT" id="Axis_02_Descr" type="MESSAGE"/>
<DataItem category="SAMPLE" id="Axis_02_PosAct" name="Pos asse Y (2) actual" nativeUnits="MILLIMETER" subType="ACTUAL" type="POSITION" units="MILLIMETER"/>
<DataItem category="SAMPLE" id="Axis_02_PosTgt" name="Pos asse Y (2) target" nativeUnits="MILLIMETER" subType="COMMANDED" type="POSITION" units="MILLIMETER"/>
<DataItem category="SAMPLE" id="Axis_02_Load" name="Load asse Y (2)" nativeUnits="PERCENT" type="LOAD" units="PERCENT"/>
<DataItem category="EVENT" id="Axis_02_MainProc" type="MESSAGE"/>
<DataItem category="EVENT" id="Axis_02_IsMast" type="MESSAGE"/>
<DataItem category="EVENT" id="Axis_02_MastId" type="MESSAGE"/>
<DataItem category="EVENT" id="Axis_02_Dir" type="DIRECTION"/>
<DataItem category="SAMPLE" id="Axis_02_FeedAct" name="FEEDRATE Asse Y (2)" subType="ACTUAL" type="AXIS_FEEDRATE" units="MILLIMETER/SECOND"/>
<DataItem category="SAMPLE" id="Axis_02_FeedOver" name="FEEDRATE OVERRIDE Asse Y (2)" subType="OVERRIDE" type="AXIS_FEEDRATE" nativeUnits="PERCENT" units="PERCENT"/>
<DataItem category="SAMPLE" id="Axis_02_AccelAct" name="Accelerazione asse Y (2)" nativeUnits="MILLIMETER/SECOND^2" type="ACCELERATION" units="MILLIMETER/SECOND^2"/>
<DataItem category="SAMPLE" id="Axis_02_AccTime" name="Tempo impiego cumulato asse Y (2)" nativeUnits="SECOND" type="ACCUMULATED_TIME" units="SECOND"/>
<DataItem category="SAMPLE" id="Axis_02_Battery" name="Valore batteria asse Y (2)" nativeUnits="VOLT" type="VOLTAGE" units="VOLT"/>
<DataItem category="SAMPLE" id="Axis_02_DistDone" name="Distanza TOTALE percorsa dall'asse Y (2)" nativeUnits="METER" type="LENGHT" units="METER"/>
<DataItem category="SAMPLE" id="Axis_02_InvDDone" name="Num cambi direzione asse Y (2)" nativeUnits="COUNT" type="MESSAGE" units="COUNT"/>
<DataItem type="TEMPERATURE" id="Temp_02_Value" category="SAMPLE" name="Sonda Temperatura asse 2" units="DEGREE" />
<DataItem category="CONDITION" id="AX02_CNC" type="SYSTEM"/>
<DataItem category="CONDITION" id="AX02_PLC" type="LOGIC"/>
</DataItems>
</Linear>
<Linear id="Axis_03" name="Asse Z">
<DataItems>
<!-- descrizione, es "Asse Z (3)" che POTREBBE cambiare -->
<DataItem category="EVENT" id="Axis_03_Descr" type="MESSAGE"/>
<DataItem category="SAMPLE" id="Axis_03_PosAct" name="Pos asse Z (3) actual" nativeUnits="MILLIMETER" subType="ACTUAL" type="POSITION" units="MILLIMETER"/>
<DataItem category="SAMPLE" id="Axis_03_PosTgt" name="Pos asse Z (3) target" nativeUnits="MILLIMETER" subType="COMMANDED" type="POSITION" units="MILLIMETER"/>
<DataItem category="SAMPLE" id="Axis_03_Load" name="Load asse Z (3)" nativeUnits="PERCENT" type="LOAD" units="PERCENT"/>
<DataItem category="EVENT" id="Axis_03_MainProc" type="MESSAGE"/>
<DataItem category="EVENT" id="Axis_03_IsMast" type="MESSAGE"/>
<DataItem category="EVENT" id="Axis_03_MastId" type="MESSAGE"/>
<DataItem category="EVENT" id="Axis_03_Dir" type="DIRECTION"/>
<DataItem category="SAMPLE" id="Axis_03_FeedAct" name="FEEDRATE Asse Z (3)" subType="ACTUAL" type="AXIS_FEEDRATE" units="MILLIMETER/SECOND"/>
<DataItem category="SAMPLE" id="Axis_03_FeedOver" name="FEEDRATE OVERRIDE Asse Z (3)" subType="OVERRIDE" type="AXIS_FEEDRATE" nativeUnits="PERCENT" units="PERCENT"/>
<DataItem category="SAMPLE" id="Axis_03_AccelAct" name="Accelerazione asse Z (3)" nativeUnits="MILLIMETER/SECOND^2" type="ACCELERATION" units="MILLIMETER/SECOND^2"/>
<DataItem category="SAMPLE" id="Axis_03_AccTime" name="Tempo impiego cumulato asse Z (3)" nativeUnits="SECOND" type="ACCUMULATED_TIME" units="SECOND"/>
<DataItem category="SAMPLE" id="Axis_03_Battery" name="Valore batteria asse Z (3)" nativeUnits="VOLT" type="VOLTAGE" units="VOLT"/>
<DataItem category="SAMPLE" id="Axis_03_DistDone" name="Distanza TOTALE percorsa dall'asse Z (3)" nativeUnits="METER" type="LENGHT" units="METER"/>
<DataItem category="SAMPLE" id="Axis_03_InvDDone" name="Num cambi direzione asse X (3)" nativeUnits="COUNT" type="MESSAGE" units="COUNT"/>
<DataItem type="TEMPERATURE" id="Temp_03_Value" category="SAMPLE" name="Sonda Temperatura asse 3" units="DEGREE" />
<DataItem category="CONDITION" id="AX03_CNC" type="SYSTEM"/>
<DataItem category="CONDITION" id="AX03_PLC" type="LOGIC"/>
</DataItems>
</Linear>
<Linear id="Axis_06" name="Asse U">
<DataItems>
<!-- Descrizione, es "U" che POTREBBE cambiare se si sposta di path -->
<DataItem category="EVENT" id="Axis_06_Descr" type="MESSAGE"/>
<DataItem category="SAMPLE" id="Axis_06_PosAct" name="Pos asse U (6) actual" nativeUnits="MILLIMETER" subType="ACTUAL" type="POSITION" units="MILLIMETER"/>
<DataItem category="SAMPLE" id="Axis_06_PosTgt" name="Pos asse U (6) target" nativeUnits="MILLIMETER" subType="COMMANDED" type="POSITION" units="MILLIMETER"/>
<DataItem category="SAMPLE" id="Axis_06_Load" name="Load asse U (6)" nativeUnits="PERCENT" type="LOAD" units="PERCENT"/>
<DataItem category="EVENT" id="Axis_06_MainProc" type="MESSAGE"/>
<DataItem category="EVENT" id="Axis_06_IsMast" type="MESSAGE"/>
<DataItem category="EVENT" id="Axis_06_MastId" type="MESSAGE"/>
<DataItem category="EVENT" id="Axis_06_Dir" type="DIRECTION"/>
<DataItem category="SAMPLE" id="Axis_06_FeedAct" name="FEEDRATE Asse U (6)" subType="ACTUAL" type="AXIS_FEEDRATE" units="MILLIMETER/SECOND"/>
<DataItem category="SAMPLE" id="Axis_06_FeedOver" name="FEEDRATE OVERRIDE Asse U (6)" subType="OVERRIDE" type="AXIS_FEEDRATE" nativeUnits="PERCENT" units="PERCENT"/>
<DataItem category="SAMPLE" id="Axis_06_AccelAct" name="Accelerazione asse U (6)" nativeUnits="MILLIMETER/SECOND^2" type="ACCELERATION" units="MILLIMETER/SECOND^2"/>
<DataItem category="SAMPLE" id="Axis_06_AccTime" name="Tempo impiego cumulato asse U (6)" nativeUnits="SECOND" type="ACCUMULATED_TIME" units="SECOND"/>
<DataItem category="SAMPLE" id="Axis_06_Battery" name="Valore batteria asse U (6)" nativeUnits="VOLT" type="VOLTAGE" units="VOLT"/>
<DataItem category="SAMPLE" id="Axis_06_DistDone" name="Distanza TOTALE percorsa dall'asse U (6)" nativeUnits="METER" type="LENGHT" units="METER"/>
<DataItem category="SAMPLE" id="Axis_06_InvDDone" name="Num cambi direzione asse U (6)" nativeUnits="COUNT" type="MESSAGE" units="COUNT"/>
<DataItem type="TEMPERATURE" id="Temp_06_Value" category="SAMPLE" name="Sonda Temperatura asse 6" units="DEGREE" />
<DataItem category="CONDITION" id="AX06_CNC" type="SYSTEM"/>
<DataItem category="CONDITION" id="AX06_PLC" type="LOGIC"/>
</DataItems>
</Linear>
<Rotary id="Axis_04" name="Asse B">
<DataItems>
<DataItem category="SAMPLE" id="Axis_04_PosAct" name="Pos asse J (4) actual" nativeUnits="DEGREE" subType="ACTUAL" type="ANGLE" units="DEGREE"/>
<DataItem category="SAMPLE" id="Axis_04_PosTgt" name="Pos asse J (4) target" nativeUnits="DEGREE" subType="COMMANDED" type="ANGLE" units="DEGREE"/>
<DataItem category="SAMPLE" id="Axis_04_Load" name="Load asse J (4)" nativeUnits="PERCENT" type="LOAD" units="PERCENT"/>
<DataItem category="EVENT" id="Axis_04_MainProc" type="MESSAGE"/>
<DataItem category="EVENT" id="Axis_04_IsMast" type="MESSAGE"/>
<DataItem category="EVENT" id="Axis_04_MastId" type="MESSAGE"/>
<DataItem category="EVENT" id="Axis_04_Dir" type="DIRECTION"/>
<DataItem category="SAMPLE" id="Axis_04_FeedAct" name="ROT SPEED Asse J (4)" subType="ACTUAL" type="ROTARY_VELOCITY" units="REVOLUTION/MINUTE"/>
<DataItem category="SAMPLE" id="Axis_04_FeedOver" name="ROT SPEED OVERRIDE Asse J (4)" subType="OVERRIDE" type="ROTARY_VELOCITY" nativeUnits="PERCENT" units="PERCENT"/>
<DataItem category="SAMPLE" id="Axis_04_AccelAct" name="Accelerazione angolare asse J (4)" nativeUnits="DEGREE/SECOND^2" type="ANGULAR_ACCELERATION" units="DEGREE/SECOND^2"/>
<DataItem category="SAMPLE" id="Axis_04_AccTime" name="Tempo impiego cumulato asse J (4)" nativeUnits="SECOND" type="ACCUMULATED_TIME" units="SECOND"/>
<DataItem category="SAMPLE" id="Axis_04_Battery" name="Valore batteria asse J (4)" nativeUnits="VOLT" type="VOLTAGE" units="VOLT"/>
<DataItem category="SAMPLE" id="Axis_04_DistDone" name="Num Giri asse J (4) nel periodo di rilevazione" nativeUnits="COUNT" type="LENGHT" units="COUNT"/>
<DataItem category="SAMPLE" id="Axis_04_InvDDone" name="Num cambi direzione asse J (4)" nativeUnits="COUNT" type="MESSAGE" units="COUNT"/>
<DataItem category="CONDITION" id="AX04_CNC" type="SYSTEM"/>
<DataItem category="CONDITION" id="AX04_PLC" type="LOGIC"/>
</DataItems>
</Rotary>
<Rotary id="Axis_05" name="Asse C (5)">
<DataItems>
<DataItem category="SAMPLE" id="Axis_05_PosAct" name="Pos asse K (5) actual" nativeUnits="DEGREE" subType="ACTUAL" type="ANGLE" units="DEGREE"/>
<DataItem category="SAMPLE" id="Axis_05_PosTgt" name="Pos asse K (5) target" nativeUnits="DEGREE" subType="COMMANDED" type="ANGLE" units="DEGREE"/>
<DataItem category="SAMPLE" id="Axis_05_Load" name="Load asse K (5)" nativeUnits="PERCENT" type="LOAD" units="PERCENT"/>
<DataItem category="EVENT" id="Axis_05_MainProc" type="MESSAGE"/>
<DataItem category="EVENT" id="Axis_05_IsMast" type="MESSAGE"/>
<DataItem category="EVENT" id="Axis_05_MastId" type="MESSAGE"/>
<DataItem category="EVENT" id="Axis_05_Dir" type="DIRECTION"/>
<DataItem category="SAMPLE" id="Axis_05_FeedAct" name="ROT SPEED Asse K (5)" subType="ACTUAL" type="ROTARY_VELOCITY" units="REVOLUTION/MINUTE"/>
<DataItem category="SAMPLE" id="Axis_05_FeedOver" name="ROT SPEED OVERRIDE Asse K (5)" subType="OVERRIDE" type="ROTARY_VELOCITY" nativeUnits="PERCENT" units="PERCENT"/>
<DataItem category="SAMPLE" id="Axis_05_AccelAct" name="Accelerazione angolare asse K (5)" nativeUnits="DEGREE/SECOND^2" type="ANGULAR_ACCELERATION" units="DEGREE/SECOND^2"/>
<DataItem category="SAMPLE" id="Axis_05_AccTime" name="Tempo impiego cumulato asse K (5)" nativeUnits="SECOND" type="ACCUMULATED_TIME" units="SECOND"/>
<DataItem category="SAMPLE" id="Axis_05_Battery" name="Valore batteria asse K (5)" nativeUnits="VOLT" type="VOLTAGE" units="VOLT"/>
<DataItem category="SAMPLE" id="Axis_05_DistDone" name="Num Giri asse k (5) nel periodo di rilevazione" nativeUnits="COUNT" type="LENGHT" units="COUNT"/>
<DataItem category="SAMPLE" id="Axis_05_InvDDone" name="Num cambi direzione asse K (5)" nativeUnits="COUNT" type="MESSAGE" units="COUNT"/>
<DataItem category="CONDITION" id="AX05_CNC" type="SYSTEM"/>
<DataItem category="CONDITION" id="AX05_PLC" type="LOGIC"/>
</DataItems>
</Rotary>
</Components>
</Axes>
<Controller id="cn1" name="controller">
<DataItems>
<DataItem category="EVENT" id="Message" type="MESSAGE"/>
<DataItem category="EVENT" id="E_STOP" type="EMERGENCY_STOP"/>
</DataItems>
<Components>
<Path id="Path_01" name="Path 01">
<DataItems>
<DataItem category="EVENT" id="Path_01_Type" type="MESSAGE"/>
<DataItem category="EVENT" id="Path_01_ActiveAxes" type="ACTIVE_AXES"/>
<DataItem category="EVENT" id="Path_01_CodG_Act" type="MESSAGE"/>
<DataItem category="EVENT" id="Path_01_SubMode" type="MESSAGE"/>
<DataItem category="EVENT" id="Path_01_PartId" type="PART_ID"/>
<DataItem category="EVENT" id="Path_01_PZ_TOT" type="PART_COUNT"/>
<DataItem category="EVENT" id="Path_01_Cod_M" type="MESSAGE"/>
<DataItem category="EVENT" id="Path_01_Cod_S" type="MESSAGE"/>
<DataItem category="EVENT" id="Path_01_Cod_T" type="MESSAGE"/>
<DataItem category="EVENT" id="Path_01_RUN_MODE" type="CONTROLLER_MODE"/>
<DataItem category="EVENT" id="Path_01_EXE_MODE" type="EXECUTION"/>
<DataItem category="EVENT" id="Path_01_CurrProg" type="PROGRAM"/>
<DataItem category="EVENT" id="Path_01_CurrProg_RowNum" type="LINE"/>
<DataItem category="SAMPLE" id="Path_01_FeedRate" nativeUnits="MILLIMETER/SECOND" type="PATH_FEEDRATE" units="MILLIMETER/SECOND" subType="ACTUAL" name="Path FEED"/>
<DataItem category="SAMPLE" id="Path_01_FeedOverr" nativeUnits="PERCENT" type="PATH_FEEDRATE" units="PERCENT" subType="OVERRIDE" name="Path FEED Override"/>
<DataItem category="SAMPLE" id="Path_01_RapidOverr" nativeUnits="PERCENT" type="PATH_FEEDRATE" units="PERCENT" subType="OVERRIDE" name="Path RAPID Override"/>
<DataItem category="SAMPLE" id="Path_01_PosActX" nativeUnits="MILLIMETER" subType="ACTUAL" type="PATH_POSITION" units="MILLIMETER" name="Posizione X"/>
<DataItem category="SAMPLE" id="Path_01_PosActY" nativeUnits="MILLIMETER" subType="ACTUAL" type="PATH_POSITION" units="MILLIMETER" name="Posizione Y"/>
<DataItem category="SAMPLE" id="Path_01_PosActZ" nativeUnits="MILLIMETER" subType="ACTUAL" type="PATH_POSITION" units="MILLIMETER" name="Posizione Z"/>
<DataItem category="SAMPLE" id="Path_01_PosActI" nativeUnits="DEGREE" subType="ACTUAL" type="ANGLE" units="DEGREE" name="Angolo I"/>
<DataItem category="SAMPLE" id="Path_01_PosActJ" nativeUnits="DEGREE" subType="ACTUAL" type="ANGLE" units="DEGREE" name="Angolo J"/>
<DataItem category="SAMPLE" id="Path_01_PosActK" nativeUnits="DEGREE" subType="ACTUAL" type="ANGLE" units="DEGREE" name="Angolo K"/>
<DataItem category="CONDITION" id="Path_01_CNC" type="SYSTEM"/>
<DataItem category="CONDITION" id="Path_01_PLC" type="LOGIC"/>
</DataItems>
</Path>
<!-- probabilmente da ri-spostare sotto PATH... -->
<Actuator id="UniOp_01" name ="Unità Operatrice 01">
<DataItems>
<DataItem category="SAMPLE" id="UnOp_01_Speed" nativeUnits="MILLIMETER/SECOND" type="PATH_FEEDRATE" units="MILLIMETER/SECOND" subType="ACTUAL" name="UnOp Speed"/>
<DataItem category="SAMPLE" id="UnOp_01_SpeedOverr" nativeUnits="PERCENT" type="PATH_FEEDRATE" units="PERCENT" subType="OVERRIDE" name="UnOp SPEED Override"/>
<DataItem category="EVENT" id="UnOp_01_ToolId" name="TOOL ID" type="TOOL_ASSET_ID"/>
<DataItem category="EVENT" id="UnOp_01_NumCU" name="Num Cambi Utensile effettuati" type="MESSAGE" units="COUNT"/>
<DataItem category="EVENT" id="UnOp_01_Status" type="ACTUATOR_STATE"/>
<DataItem category="EVENT" id="UnOp_01_VitaRes" name="Vita Residua Tool" type="MESSAGE" units="COUNT"/>
<DataItem category = "EVENT" id = "UnOp_01_VitaResType" name = "Tipologia misura Vita Residua Tool" type = "MESSAGE" />
<DataItem category="SAMPLE" id="UnOp_01_Load" name="Load sul PATH/UnOp" nativeUnits="PERCENT" type="LOAD" units="PERCENT"/>
<!-- cambiare in event... -->
<DataItem category="SAMPLE" id="UnOp_01_AccTime" name="Totale giri (migliaia) accumulati dal mandrino" type="COUNT"/>
</DataItems>
</Actuator>
</Components>
</Controller>
<Systems id="systems" name="systems">
<Components>
<Electric id="el" name="electric">
<DataItems>
<DataItem category="EVENT" id="p2" name="power" type="POWER_STATE"/>
</DataItems>
</Electric>
<Hydraulic id="hsys" name="hydraulic">
<!--<DataItems>
<DataItem category="CONDITION" id="hlow" type="LEVEL"/>
<DataItem category="CONDITION" id="hpres" type="PRESSURE"/>
<DataItem category="CONDITION" id="htemp" type="TEMPERATURE"/>
</DataItems>-->
</Hydraulic>
<Pneumatic id="PneumSys" name="Pneumatic Systems">
<Actuator id="VacPump_01" name ="Pompa 1">
<DataItems>
<DataItem category="EVENT" id="VacPump_01_Status" name="Stato Pompa 1" type="ACTUATOR_STATE"/>
<DataItem category="SAMPLE" id="VacPump_01_WrkTime" name="Tempo macchina in RUN" type="ACCUMULATED_TIME"/>
</DataItems>
</Actuator>
<Actuator id="VacPump_02" name ="Pompa 2">
<DataItems>
<DataItem category="EVENT" id="VacPump_02_Status" name="Stato Pompa 2" type="ACTUATOR_STATE"/>
<DataItem category="SAMPLE" id="VacPump_02_WrkTime" name="Tempo macchina in RUN" type="ACCUMULATED_TIME"/>
</DataItems>
</Actuator>
<Actuator id="VacAct_01" name ="Valvola vuoto 1">
<DataItems>
<DataItem category="EVENT" id="VacAct_01_Count" name="Contatore attivazioni valvola attuatore 1" type="MESSAGE" units="COUNT"/>
</DataItems>
</Actuator>
<Actuator id="VacAct_02" name ="Valvola vuoto 2">
<DataItems>
<DataItem category="EVENT" id="VacAct_02_Count" name="Contatore attivazioni valvola attuatore 2" type="MESSAGE" units="COUNT"/>
</DataItems>
</Actuator>
</Pneumatic>
<Coolant id="cool" name="coolant">
<!--<DataItems>
<DataItem category="CONDITION" id="clow" type="LEVEL"/>
<DataItem category="CONDITION" id="coolpres" type="PRESSURE"/>
<DataItem category="CONDITION" id="filter" type="x:FILTER"/>
<DataItem category="CONDITION" id="coolantmotor" type="ACTUATOR"/>
</DataItems>-->
<Actuator id="Cooler_01" name ="Cooler 1">
<DataItems>
<DataItem category="EVENT" id="Cooler_01_Status" name="Stato Cooler 1" type="ACTUATOR_STATE"/>
</DataItems>
</Actuator>
<Actuator id="Cooler_02" name ="Cooler 2">
<DataItems>
<DataItem category="EVENT" id="Cooler_02_Status" name="Stato Cooler 2" type="ACTUATOR_STATE"/>
</DataItems>
</Actuator>
</Coolant>
<Lubrication id="LubroSys" name="Lubricant Systems">
<Actuator id="Lubro_01" name ="Lubrorefrigerante 1">
<DataItems>
<DataItem category="EVENT" id="Lubro_01_Num" name="Contatore lubro 1" type="MESSAGE" units="COUNT"/>
</DataItems>
</Actuator>
<Actuator id="Lubro_02" name ="Lubrorefrigerante 2">
<DataItems>
<DataItem category="EVENT" id="Lubro_02_Num" name="Contatore lubro 2" type="MESSAGE" units="COUNT"/>
</DataItems>
</Actuator>
</Lubrication>
</Components>
</Systems>
<Sensor id="sens1" name="Sensorunit">
<DataItems>
<!-- verificare di poterli spostare e siano 4, 1 x ogni asse lineare >>> SPOSTARE!!!!!! -->
<!-- <DataItem type="TEMPERATURE" id="Temp_04_Value" category="SAMPLE" name="Sonda Temperatura 4" units="DEGREE"/>
<DataItem type="TEMPERATURE" id="Temp_05_Value" category="SAMPLE" name="Sonda Temperatura 5" units="DEGREE"/> -->
<DataItem type="PRESSURE" id="Press_01_Value" category="SAMPLE" name="Pressostato 1" units="PASCAL"/>
</DataItems>
</Sensor>
</Components>
</Device>
</Devices>
</MTConnectDevices>
+5
View File
@@ -20,6 +20,7 @@
<OutputPath>bin\Debug\</OutputPath>
<DocumentationFile>CMSCncLib.xml</DocumentationFile>
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
<DefineConstants>FS30D=1</DefineConstants>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
@@ -29,6 +30,7 @@
<OutputPath>bin\Release\</OutputPath>
<DocumentationFile>CMSCncLib.xml</DocumentationFile>
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
<DefineConstants>FS30D=1</DefineConstants>
</PropertyGroup>
<PropertyGroup>
<OptionExplicit>On</OptionExplicit>
@@ -51,6 +53,7 @@
<DebugType>pdbonly</DebugType>
<PlatformTarget>AnyCPU</PlatformTarget>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
<DefineConstants>FS30D=1</DefineConstants>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'SCM-ESA|AnyCPU' ">
<DefineTrace>true</DefineTrace>
@@ -61,6 +64,7 @@
<DebugType>pdbonly</DebugType>
<PlatformTarget>AnyCPU</PlatformTarget>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
<DefineConstants>FS30D=1</DefineConstants>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'CMS-SIEMENS|AnyCPU'">
<DefineTrace>true</DefineTrace>
@@ -71,6 +75,7 @@
<DebugType>pdbonly</DebugType>
<PlatformTarget>AnyCPU</PlatformTarget>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
<DefineConstants>FS30D=1</DefineConstants>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
@@ -251,96 +251,6 @@ Namespace CNC
Next i
End Sub
Public Overrides Function SetCncWindowSize() As Boolean
Dim CncWindowSizeNew As Size
Select Case Config.Settings.Settings.OpPanel_ScreenSize 'Screen.PrimaryScreen.Bounds.Size
Case New Size(800, 600) '10"
CncWindowSizeNew = New System.Drawing.Size(640, 500)
Case New Size(1024, 768) '15"
CncWindowSizeNew = New System.Drawing.Size(800, 620)
Case New Size(2048, 768) '15" doppio monitor
CncWindowSizeNew = New System.Drawing.Size(800, 620)
Case New Size(1280, 800) '15,6" widescreen
CncWindowSizeNew = New System.Drawing.Size(800, 620) ''
Case New Size(1280, 1024) '17"
CncWindowSizeNew = New System.Drawing.Size(960, 740)
Case Else
CncWindowSizeNew = New System.Drawing.Size(800, 620)
End Select
If _CncWindowSize <> CncWindowSizeNew Then
_CncWindowSize = CncWindowSizeNew
Return True
Else
Return False
End If
End Function
Public Overrides Sub RunCnc()
Dim szProgramFilesDir As String
Dim szPath As String = ""
Dim szParam As String = ""
Dim key As RegistryKey
Dim myProcess As System.Diagnostics.Process
If Not FindCncWindow() Then
key = Registry.LocalMachine.OpenSubKey("SOFTWARE\Microsoft\Windows\CurrentVersion")
szProgramFilesDir = key.GetValue("ProgramFilesDir")
Select Case _CncScreen_connectionType
Case FANUC.ConnectionType.Ethernet
szPath = szProgramFilesDir & "\CNCScreenE\CNCScrnE.exe"
szParam = "/H=" & Config.Settings.Settings.IpFanuc & ":" & CStr(Config.Settings.Settings.PortIpFanuc) & "/T=30"
Case FANUC.ConnectionType.Hssb
szPath = szProgramFilesDir & "\CNCScreen\CNCScrn.exe"
szParam = ""
End Select
'ShellExecute(0, "open", szPath, szParam, vbNullString, SW_SHOWNORMAL)
myProcess = System.Diagnostics.Process.Start(szPath, szParam)
End If
End Sub
Public Overrides Sub CloseCnc()
If FindCncWindow() Then
_CncWindowProcess.Kill()
End If
End Sub
'Public Overrides Function FindCncWindow() As Boolean
' _CncWindowProcess = FindProcess(CncScreen_ProcessName)
' Return _CncWindowProcess IsNot Nothing
'End Function
'Public Overrides Function CncIsIconic() As Boolean
' If _CncWindowProcess IsNot Nothing Then
' Return ProcessIsIconic(_CncWindowProcess.MainWindowHandle)
' End If
'End Function
'Public Overrides Function CncIsZoomed() As Boolean
' If _CncWindowProcess IsNot Nothing Then
' Return ProcessIsZoomed(_CncWindowProcess.MainWindowHandle)
' End If
'End Function
'Public Overrides Sub MinimizeCnc()
' MinimizeWindow(CncScreen_ProcessName)
'End Sub
'Public Overrides Sub NormalizeCnc()
' ShowNormalWindow(CncScreen_ProcessName)
' MoveWindow(CncScreen_ProcessName, _CncWindowPosition)
'End Sub
'Public Overrides Sub SetCncFocus()
' SetWindowFocus(CncScreen_ProcessName)
'End Sub
'Public Overrides Sub MoveCnc()
' MoveWindow(CncScreen_ProcessName, CncWindowPosition, "CNC Screen Display Function")
'End Sub
''' <summary>
''' Get class series of CNC: 16 or 30
''' </summary>
File diff suppressed because it is too large Load Diff
-30
View File
@@ -207,42 +207,12 @@ Namespace CNC
Public Overridable Sub GetStaticData()
End Sub
''' <summary>
''' Stabilisce la risoluzione CncWindow
''' </summary>
Public Overridable Function SetCncWindowSize() As Boolean
End Function
''' <summary>
''' Esegue l'applicazione CNC
''' </summary>
Public Overridable Sub RunCnc()
End Sub
''' <summary>
''' Chiude l'applicazione CNC
''' </summary>
Public Overridable Sub CloseCnc()
End Sub
''' <summary>
''' Cerca la finestra CNC e restituisce True se la trova
''' </summary>
Public Overridable Function FindCncWindow() As Boolean
End Function
''' <summary>
''' Restituisce True se la finestra Cnc è ridotta a icona
''' </summary>
Public Overridable Function CncIsIconic() As Boolean
End Function
''' <summary>
''' Restituisce True se la finestra Cnc è massimizzata a tutto schermo
''' </summary>
Public Overridable Function CncIsZoomed() As Boolean
End Function
''' <summary>
''' Riduce a icona la finestra CNC
''' </summary>
@@ -162,14 +162,6 @@ Namespace Config
End Get
End Property
'Private _ToolTable_GeometryManagement As Control.ToolTable.GeometryManagement
''' <summary>Tipo di gestione dati dimensioni utensili</summary>
'Public ReadOnly Property ToolTable_GeometryManagement() As Control.ToolTable.GeometryManagement
' Get
' Return Me._ToolTable_GeometryManagement
' End Get
'End Property
Private _ToolTable_MaxToolsManaged As Integer
''' <summary>Massimo numero di utensili gestibili</summary>
+4 -3
View File
@@ -3,13 +3,14 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14
VisualStudioVersion = 14.0.25420.1
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DotNetAdapterSDK", "..\..\..\GitHub\MTConnect\dot_net_sdk\DotNetAdapterSDK.csproj", "{D8D08DBE-B511-4DE0-B5A9-563EBFC60C4F}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DotNetAdapterSDK", "..\..\..\..\GitHub\MTConnect\dot_net_sdk\DotNetAdapterSDK.csproj", "{D8D08DBE-B511-4DE0-B5A9-563EBFC60C4F}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{695A97F7-B396-4DD3-8596-F043ECA3E2BD}"
ProjectSection(SolutionItems) = preProject
..\..\..\..\..\Dropbox\30_Clienti\CMS\CMS-MTC\SetupMTC\AGENT\DATA\CONF_DEMO\Agent_ItemList_ESAKVARA.xml = ..\..\..\..\..\Dropbox\30_Clienti\CMS\CMS-MTC\SetupMTC\AGENT\DATA\CONF_DEMO\Agent_ItemList_ESAKVARA.xml
..\..\..\..\..\Dropbox\30_Clienti\CMS\CMS-MTC\SetupMTC\AGENT\DATA\CONF_DEMO\Agent_ItemList_FANUC.xml = ..\..\..\..\..\Dropbox\30_Clienti\CMS\CMS-MTC\SetupMTC\AGENT\DATA\CONF_DEMO\Agent_ItemList_FANUC.xml
..\AgentBin\CMS.xml = ..\AgentBin\CMS.xml
..\AgentBin\simulator\CMS_DEMO.xml = ..\AgentBin\simulator\CMS_DEMO.xml
..\AgentBin\simulator\SCM_DEMO.xml = ..\AgentBin\simulator\SCM_DEMO.xml
..\AgentBin\SCM.xml = ..\AgentBin\SCM.xml
EndProjectSection
EndProject
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "CMSCncLib", "CMSCncLib\CMSCncLib.vbproj", "{2D769FFD-1122-4276-A115-29246E6D23C5}"
+26 -18
View File
@@ -36,6 +36,7 @@ namespace MTC_Adapter
element[] _Path;
element[] _UnOp;
element[] _Axis;
element[] _MemArea;
/// <summary>
/// init conf adapter
@@ -198,6 +199,23 @@ namespace MTC_Adapter
return answ;
}
}
public int nMemArea
{
get
{
int answ = 0;
if (MemArea != null)
{
try
{
answ = Convert.ToInt32(MemArea.Length);
}
catch
{ }
}
return answ;
}
}
/// <summary>
/// Serializzazione XML dell'oggetto conf dell'adapter
@@ -230,7 +248,7 @@ namespace MTC_Adapter
/// <returns></returns>
public static AdapterConf Deserialize(string file)
{
System.Xml.Serialization.XmlSerializer xs = new System.Xml.Serialization.XmlSerializer(typeof(AdapterConf));
XmlSerializer xs = new XmlSerializer(typeof(AdapterConf));
StreamReader reader = File.OpenText(file);
AdapterConf c = (AdapterConf)xs.Deserialize(reader);
reader.Close();
@@ -331,6 +349,11 @@ namespace MTC_Adapter
get { return _Axis; }
set { _Axis = value; }
}
public element[] MemArea
{
get { return _MemArea; }
set { _MemArea = value; }
}
}
@@ -355,41 +378,26 @@ namespace MTC_Adapter
/// </summary>
public string ident;
/// <summary>
/// alias x poterlo riconoscere/riferire in agent
/// </summary>
public string alias;
/// <summary>
/// fonte dati
/// </summary>
public fonteDati fonte;
/// <summary>
/// Elenco riferimento dati x recupero (es posizioni memoria separate da #)
/// </summary>
public List<DataRefItem<string, string>> dataRefList;
/// <summary>
/// init empty
/// </summary>
public element()
{
ident = "";
alias = "";
fonte = fonteDati.NoData;
dataRefList = new List<DataRefItem<string, string>>();
}
/// <summary>
/// init element con dati
/// </summary>
/// <param name="Idx">Identificativo univoco</param>
/// <param name="Alias">Alias/descrizione</param>
/// <param name="FonteD">Tipo fonte dati</param>
/// <param name="DataRef">Parametri x recupero dati in forma dictionary</param>
public element(string Idx, string Alias, fonteDati FonteD, List<DataRefItem<string, string>> DataRef)
public element(string Idx, List<DataRefItem<string, string>> DataRef)
{
ident = Idx;
alias = Alias;
fonte = FonteD;
dataRefList = DataRef;
}
}
+727 -88
View File
@@ -5,11 +5,142 @@ using SCMCncLib;
using System.Windows.Forms;
using System.Threading;
using System.IO;
using System.Collections.Generic;
namespace MTC_Adapter
{
public class AdapterESA : AdapterGeneric
{
/// <summary>
/// Configurazione valori da leggere IOT_Byte
/// </summary>
public otherData[] mapIOT_Byte;
/// <summary>
/// Configurazione valori da leggere IOT_Word
/// </summary>
public otherData[] mapIOT_Word;
/// <summary>
/// Configurazione valori da leggere IOT_DWord
/// </summary>
public otherData[] mapIOT_DWord;
/// <summary>
/// Configurazione valori da leggere IOT_String
/// </summary>
public otherData[] mapIOT_String;
/// <summary>
/// Carico file conf dati IOT
/// </summary>
protected override void loadOtherFile()
{
base.loadOtherFile();
loadByteListMap();
loadWordListMap();
loadDWordListMap();
loadStringListMap();
}
/// <summary>
/// Carico conf vettore dati STRING
/// </summary>
private void loadStringListMap()
{
loadConfFile(ref mapIOT_String, filePath("IOTStringFilePath"), 1);
}
/// <summary>
/// Carico conf vettore dati DWORD
/// </summary>
private void loadDWordListMap()
{
loadConfFile(ref mapIOT_DWord, filePath("IOTDWordFilePath"), 1);
}
/// <summary>
/// Carico conf vettore dati WORD
/// </summary>
private void loadWordListMap()
{
loadConfFile(ref mapIOT_Word, filePath("IOTWordFilePath"), 1);
}
/// <summary>
/// Carico conf vettore dati BYTE
/// </summary>
private void loadByteListMap()
{
loadConfFile(ref mapIOT_Byte, filePath("IOTByteFilePath"), 1);
}
/// <summary>
/// Restituisce path completo file da chaive configurazione
/// </summary>
/// <param name="keyFile">chaive conf x file richiesto</param>
/// <returns></returns>
protected string filePath(string keyFile)
{
return string.Format(@"{0}\{1}", utils.confDir, utils.CRS(keyFile));
}
/// <summary>
/// Legge il file di conf di una MAP di informazioni da gestire con lettura set memoria
/// </summary>
/// <param name="vettoreConf">nome vettore memoria</param>
/// <param name="nomeFile">file origine</param>
/// <param name="memSize">dimensione (in byte) della memoria</param>
protected void loadConfFile(ref otherData[] vettoreConf, string nomeFile, int memSize)
{
//// carico dati x Maintenance
//if (utils.CRB("verbose")) lg.Info("Inizio caricamento vettore mappa " + nomeFile);
int totRighe = 0;
string linea;
totRighe = File.ReadLines(nomeFile).Count();
// creo un vettore della dimensione corretta... conta anche commenti tanto poi riduco...
vettoreConf = new otherData[File.ReadLines(nomeFile).Count()];
// carica da file...
System.IO.StreamReader file = new System.IO.StreamReader(nomeFile);
// leggo 1 linea alla volta...
int numRiga = 0;
int bitNum = 0;
int byteNum = 0;
while ((linea = file.ReadLine()) != null)
{
// SE non è un commento...
if (linea.Substring(0, 1) != "#")
{
// se finisce per BIT allora processo bit-a-bit...
if (linea.EndsWith("BOOL"))
{
try
{
string[] memIdx = linea.Split(utils.CRC("testCharSep"))[0].Split('.');
// calcolo bit e byte number...
int.TryParse(memIdx[0], out byteNum);
if (memIdx.Length > 1)
{
int.TryParse(memIdx[1], out bitNum);
}
else
{
bitNum = 0;
}
}
catch
{
byteNum = 0;
bitNum = 0;
}
vettoreConf[numRiga] = decodeBitData(linea, utils.CRC("testCharSep"), "", byteNum, 1, bitNum);
}
else
{
vettoreConf[numRiga] = decodeOtherData(linea, utils.CRC("testCharSep"), "", 1, memSize);
}
numRiga++;
}
}
// chiudo file
file.Close();
// ora trimmo vettore al solo numero VERO dei valori caricati...
Array.Resize<otherData>(ref vettoreConf, numRiga);
if (utils.CRB("verbose")) lg.Info(string.Format("Fine caricamento vettore di {0} variabili per file {1}", numRiga, nomeFile));
}
/// <summary>
/// oggetto onnessione ESA
/// </summary>
@@ -34,7 +165,9 @@ namespace MTC_Adapter
if (utils.CRB("verbose")) lg.Info("step 01: impostato INI File {0}", iniPath);
ncDevice = new thdNcEsaGvKvara(EsaIni);
loadOtherFile();
ncDevice = new thdNcEsaGvKvara(EsaIni, mapIOT_Byte.Length, mapIOT_Word.Length, mapIOT_DWord.Length, mapIOT_String.Length);
if (utils.CRB("verbose")) lg.Info("step 02: avviato thdNcEsaGvKvara da INI File {0}", iniPath);
@@ -90,20 +223,572 @@ namespace MTC_Adapter
}
/// <summary>
/// Effettuo lettura memorie strobe/status
/// Carica ed acquisisce dati del buffer Byte (8 bit) di memoria
/// </summary>
public override void getStrobeAndAckStatus()
protected void getIotMem_Byte()
{
base.getStrobeAndAckStatus();
// HARD CODE: forzo path 1 (indice 0...)
int idxPath = 0;
// accodo dati path in DataMonitor......
StringBuilder sb = new StringBuilder();
if (connectionOk)
{
// leggo TUTTO il blocco di memoria
inizio = DateTime.Now;
ncDevice.ReadBufferByte();
if (utils.CRB("recTime")) TimingData.addResult(string.Format("R{0}-PLC_IOT-Byte", ncDevice.PLC_MemoryAreaIOT_Byte.Length), DateTime.Now.Subtract(inizio).Ticks);
}
else
{
lg.Error("Errore connessione mancante in getIotMem_Byte");
}
// Processing area BYTE
int numero = 0;
string status = "";
string pathExeMode = "";
string pathRunMode = "";
bool isFeedHold = false;
bool isActive = false;
bool isReady = false;
int bitNum = 0;
int byteNum = 0;
byte currByte;
for (int i = 0; i < mapIOT_Byte.Length; i++)
{
// vado a gestire le variabili BYTE
if (mapIOT_Byte[i].dataType == "BYTE")
{
int.TryParse(mapIOT_Byte[i].memAddr, out byteNum);
if (mapIOT_Byte[i].varName == "IOT_OVRF")
{
FeedRateOver = ncDevice.PLC_MemoryAreaIOT_Byte[byteNum];
}
else if (mapIOT_Byte[i].varName == "IOT_OVRS")
{
SpeedRateOver = ncDevice.PLC_MemoryAreaIOT_Byte[byteNum];
}
else if (mapIOT_Byte[i].varName == "IOT_MODECN")
{
// Modo CN:0=Nessuno,1=Manuale,2=Automatico, 3=Pom,4=Mdi,5=SemiAutomatico,6=Rap,7=Test
int modoCn = ncDevice.PLC_MemoryAreaIOT_Byte[byteNum];
switch (modoCn)
{
case 1:
pathRunMode = "MANUAL";
break;
case 2:
pathRunMode = "AUTOMATIC";
break;
case 3:
pathRunMode = "POM";
break;
case 4:
pathRunMode = "MANUAL_DATA_INPUT";
break;
case 5:
pathRunMode = "SEMI_AUTOMATIC"; //"SEMIAUTO";
break;
case 6:
pathRunMode = "RAP"; //"MANUAL";
break;
case 7:
pathRunMode = "TES"; //"MANUAL";
break;
case 0:
default:
pathRunMode = "NA";
break;
}
// salvo run mode
vettPath[idxPath].mPathRunMode.Value = pathRunMode;
}
else if (mapIOT_Byte[i].varName.StartsWith("IOT_LUB_"))
{
try
{
numero = Convert.ToInt32(mapIOT_Byte[i].varName.Replace("IOT_LUB_", "").Replace("_STA", "").Replace("_CNT", ""));
// salvo in vettore SE possibile...
if (numero <= vettLubro.Length)
{
if (mapIOT_Byte[i].varName.EndsWith("_STA"))
{
if (ncDevice.PLC_MemoryAreaIOT_Byte[byteNum] != 0)
{
status = "EMPTY";
}
else
{
status = "OK";
}
vettLubro[numero - 1].mLubroStatus.Value = status;
}
else if (mapIOT_Byte[i].varName.EndsWith("_CNT"))
{
vettLubro[numero - 1].mLubroNum.Value = ncDevice.PLC_MemoryAreaIOT_Byte[byteNum];
}
}
else
{
lg.Error("Errore in inserimento vettore " + mapIOT_Byte[i].varName);
}
}
catch (Exception exc)
{
lg.Error(exc, "Errore in decodifica " + mapIOT_Byte[i].varName);
}
}
else if (mapIOT_Byte[i].varName.StartsWith("IOT_I_MD_"))
{
try
{
numero = Convert.ToInt32(mapIOT_Byte[i].varName.Replace("IOT_I_MD_", ""));
// salvo in vettore SE possibile...
if (numero <= vettUnOp.Length)
{
vettUnOp[numero - 1].mUnOpLoad.Value = ncDevice.PLC_MemoryAreaIOT_Byte[byteNum];
}
else
{
lg.Error("Errore in inserimento vettore " + mapIOT_Byte[i].varName);
}
}
catch (Exception exc)
{
lg.Error(exc, "Errore in decodifica " + mapIOT_Byte[i].varName);
}
}
}
// gestisco le variabili BIT/BOOL
else if (mapIOT_Byte[i].dataType == "BOOL")
{
string[] memIdx = mapIOT_Byte[i].memAddr.Split('.');
// calcolo bit e byte number...
int.TryParse(memIdx[0], out byteNum);
if (memIdx.Length > 1)
{
int.TryParse(memIdx[1], out bitNum);
}
// leggo byte...
currByte = ncDevice.PLC_MemoryAreaIOT_Byte[byteNum];
if (mapIOT_Byte[i].varName == "IOT_MACHON")
{
if (((StFlag8)currByte).HasFlag((StFlag8)Math.Pow(2, bitNum)))
{
mPower.Value = "ON";
}
else
{
mPower.Value = "OFF";
}
}
else if (mapIOT_Byte[i].varName == "IOT_READY")
{
isReady = ((StFlag8)currByte).HasFlag((StFlag8)Math.Pow(2, bitNum));
}
else if (mapIOT_Byte[i].varName == "IOT_EXEC")
{
isActive = ((StFlag8)currByte).HasFlag((StFlag8)Math.Pow(2, bitNum));
}
else if (mapIOT_Byte[i].varName == "IOT_HOLD")
{
isFeedHold = ((StFlag8)currByte).HasFlag((StFlag8)Math.Pow(2, bitNum));
}
else if (mapIOT_Byte[i].varName == "IOT_EMG")
{
if (((StFlag8)currByte).HasFlag((StFlag8)Math.Pow(2, bitNum)))
{
mEStop.Value = "TRIGGERED";
}
else
{
mEStop.Value = "ARMED";
}
}
else if (mapIOT_Byte[i].varName == "IOT_ALRM")
{
if (((StFlag8)currByte).HasFlag((StFlag8)Math.Pow(2, bitNum)))
{
// carico IN BLOCCO memoria allarmi...
// FARE!!!
}
}
}
}
// imposto exe mode alla fine secondo gerarchia stati...
if (isFeedHold)
{
pathExeMode = "FEED_HOLD"; //"FEEDHOLD";
}
else if (isActive)
{
pathExeMode = "ACTIVE";
}
else if (isReady)
{
pathExeMode = "READY";
}
vettPath[idxPath].mPathExeMode.Value = pathExeMode;
// sistemo le stringhe x display
sb.AppendLine(string.Format("RunMode: {0}", pathRunMode));
sb.AppendLine(string.Format("ExeMode: {0}", pathExeMode));
sb.AppendLine(string.Format("FeedRateOver: {0} %", FeedRateOver));
sb.AppendLine(string.Format("SpeedRateOver: {0} %", SpeedRateOver));
// update form!
parentForm.dataMonitor += sb.ToString();
}
/// <summary>
/// Carica ed acquisisce dati del buffer WORD (16 bit) di memoria
/// </summary>
protected void getIotMem_Word()
{
if (connectionOk)
{
// leggo TUTTO il blocco di memoria
inizio = DateTime.Now;
ncDevice.ReadBufferWord();
if (utils.CRB("recTime")) TimingData.addResult(string.Format("R{0}-PLC_IOT-Word", ncDevice.PLC_MemoryAreaIOT_Word.Length), DateTime.Now.Subtract(inizio).Ticks);
}
else
{
lg.Error("Errore connessione mancante in getIotMem_Word");
}
int numero = 0;
int byteNum = 0;
// Processing area WORD
for (int i = 0; i < mapIOT_Word.Length; i++)
{
int.TryParse(mapIOT_Word[i].memAddr, out byteNum);
if (mapIOT_Word[i].varName.StartsWith("IOT_S_MD_"))
{
try
{
numero = Convert.ToInt32(mapIOT_Word[i].varName.Replace("IOT_S_MD_", ""));
// salvo in vettore SE possibile...
if (numero <= vettUnOp.Length)
{
vettUnOp[numero - 1].mUnOpSpeed.Value = ncDevice.PLC_MemoryAreaIOT_Word[byteNum];
}
else
{
lg.Error("Errore in inserimento vettore " + mapIOT_Word[i].varName);
}
}
catch (Exception exc)
{
lg.Error(exc, "Errore in decodifica " + mapIOT_Word[i].varName);
}
}
else if (mapIOT_Word[i].varName.StartsWith("IOT_T_MD_"))
{
try
{
numero = Convert.ToInt32(mapIOT_Word[i].varName.Replace("IOT_T_MD_", ""));
// salvo in vettore SE possibile...
if (numero <= vettUnOp.Length)
{
vettUnOp[numero - 1].mUnOpToolId.Value = ncDevice.PLC_MemoryAreaIOT_Word[byteNum];
}
else
{
lg.Error("Errore in inserimento vettore " + mapIOT_Word[i].varName);
}
}
catch (Exception exc)
{
lg.Error(exc, "Errore in decodifica " + mapIOT_Word[i].varName);
}
}
else if (mapIOT_Word[i].varName.StartsWith("IOT_C_TC_"))
{
// recupero NUMERO
try
{
numero = Convert.ToInt32(mapIOT_Word[i].varName.Replace("IOT_C_TC_", ""));
// salvo in vettore SE possibile...
if (numero <= vettUnOp.Length)
{
vettUnOp[numero - 1].mUnOpNumCU.Value = ncDevice.PLC_MemoryAreaIOT_Word[byteNum];
}
else
{
lg.Error("Errore in inserimento vettore " + mapIOT_Word[i].varName);
}
}
catch (Exception exc)
{
lg.Error(exc, "Errore in decodifica " + mapIOT_Word[i].varName);
}
}
else if (mapIOT_Word[i].varName.StartsWith("IOT_C_H_MD_"))
{
try
{
numero = Convert.ToInt32(mapIOT_Word[i].varName.Replace("IOT_C_H_MD_", ""));
// salvo in vettore SE possibile...
if (numero <= vettUnOp.Length)
{
vettUnOp[numero - 1].mUnOpAccTime.Value = ncDevice.PLC_MemoryAreaIOT_Word[byteNum];
}
else
{
lg.Error("Errore in inserimento vettore " + mapIOT_Word[i].varName);
}
}
catch (Exception exc)
{
lg.Error(exc, "Errore in decodifica " + mapIOT_Word[i].varName);
}
}
else if (mapIOT_Word[i].varName.StartsWith("IOT_C_H_VAC_"))
{
// recupero NUMERO
try
{
numero = Convert.ToInt32(mapIOT_Word[i].varName.Replace("IOT_C_H_VAC_", ""));
// salvo in vettore SE possibile...
if (numero <= vettVacAct.Length)
{
vettVacAct[numero - 1].mVacActCount.Value = ncDevice.PLC_MemoryAreaIOT_Word[byteNum];
}
else
{
lg.Error("Errore in inserimento vettore " + mapIOT_Word[i].varName);
}
}
catch (Exception exc)
{
lg.Error(exc, "Errore in decodifica " + mapIOT_Word[i].varName);
}
}
else if (mapIOT_Word[i].varName.StartsWith("IOT_PGMR_A_"))
{
try
{
numero = Convert.ToInt32(mapIOT_Word[i].varName.Replace("IOT_PGMR_A_", ""));
// salvo in vettore SE possibile...
if (numero <= vettMemArea.Length)
{
vettMemArea[numero - 1].mMemAreaProgNumRep.Value = ncDevice.PLC_MemoryAreaIOT_Word[byteNum];
}
else
{
lg.Error("Errore in inserimento vettore " + mapIOT_Word[i].varName);
}
}
catch (Exception exc)
{
lg.Error(exc, "Errore in decodifica " + mapIOT_Word[i].varName);
}
}
else if (mapIOT_Word[i].varName.StartsWith("IOT_C_EXEC_A_"))
{
try
{
numero = Convert.ToInt32(mapIOT_Word[i].varName.Replace("IOT_C_EXEC_A_", ""));
// salvo in vettore SE possibile...
if (numero <= vettMemArea.Length)
{
vettMemArea[numero - 1].mMemAreaProgNumExe.Value = ncDevice.PLC_MemoryAreaIOT_Word[byteNum];
}
else
{
lg.Error("Errore in inserimento vettore " + mapIOT_Word[i].varName);
}
}
catch (Exception exc)
{
lg.Error(exc, "Errore in decodifica " + mapIOT_Word[i].varName);
}
}
}
}
/// <summary>
/// Carica ed acquisisce dati del buffer DWORD (32 bit) di memoria
/// </summary>
protected void getIotMem_DWord()
{
if (connectionOk)
{
// leggo TUTTO il blocco di memoria
inizio = DateTime.Now;
ncDevice.ReadBufferDWord();
if (utils.CRB("recTime")) TimingData.addResult(string.Format("R{0}-PLC_IOT-DWord", ncDevice.PLC_MemoryAreaIOT_DWord.Length), DateTime.Now.Subtract(inizio).Ticks);
}
else
{
lg.Error("Errore connessione mancante in getIotMem_DWord");
}
int numero = 0;
int byteNum = 0;
double valDouble = 0;
// Processing area WORD
for (int i = 0; i < mapIOT_DWord.Length; i++)
{
int.TryParse(mapIOT_DWord[i].memAddr, out byteNum);
if (mapIOT_DWord[i].varName.StartsWith("IOT_C_KU_AX_"))
{
// recupero NUMERO
try
{
numero = Convert.ToInt32(mapIOT_DWord[i].varName.Replace("IOT_C_KU_AX_", ""));
// salvo in vettore SE possibile...
if (numero <= vettAxis.Length)
{
vettAxis[numero - 1].mAxDistDone.Value = ncDevice.PLC_MemoryAreaIOT_DWord[byteNum];
}
else
{
lg.Error("Errore in inserimento vettore " + mapIOT_DWord[i].varName);
}
}
catch (Exception exc)
{
lg.Error(exc, "Errore in decodifica " + mapIOT_DWord[i].varName);
}
}
else if (mapIOT_DWord[i].varName.StartsWith("IOT_C_KINV_AX_"))
{
// recupero NUMERO
try
{
numero = Convert.ToInt32(mapIOT_DWord[i].varName.Replace("IOT_C_KINV_AX_", ""));
// salvo in vettore SE possibile...
if (numero <= vettAxis.Length)
{
vettAxis[numero - 1].mAxInvDDone.Value = ncDevice.PLC_MemoryAreaIOT_DWord[byteNum];
}
else
{
lg.Error("Errore in inserimento vettore " + mapIOT_DWord[i].varName);
}
}
catch (Exception exc)
{
lg.Error(exc, "Errore in decodifica " + mapIOT_DWord[i].varName);
}
}
else if (mapIOT_DWord[i].varName.StartsWith("IOT_POS_AX_"))
{
// recupero NUMERO
try
{
numero = Convert.ToInt32(mapIOT_DWord[i].varName.Replace("IOT_POS_AX_", ""));
// recupero valore pos assi (in micron)
valDouble = (double)BitConverter.ToInt32(BitConverter.GetBytes(ncDevice.PLC_MemoryAreaIOT_DWord[byteNum]), 0);
// salvo in vettore SE possibile...
if (numero <= vettAxis.Length)
{
// riporto il dato in mm (divido x 1000)
vettAxis[numero - 1].mAxPosAct.Value = valDouble / utils.CRI("fattdecimale");
}
else
{
lg.Error("Errore in inserimento vettore " + mapIOT_DWord[i].varName);
}
}
catch (Exception exc)
{
lg.Error(exc, "Errore in decodifica " + mapIOT_DWord[i].varName);
}
}
else if (mapIOT_DWord[i].varName.StartsWith("IOT_C_KREV_MD_"))
{
// recupero NUMERO
try
{
numero = Convert.ToInt32(mapIOT_DWord[i].varName.Replace("IOT_C_KREV_MD_", ""));
// salvo in vettore SE possibile...
if (numero <= vettUnOp.Length)
{
vettUnOp[numero - 1].mUnOpKRev.Value = ncDevice.PLC_MemoryAreaIOT_DWord[byteNum];
}
else
{
lg.Error("Errore in inserimento vettore " + mapIOT_DWord[i].varName);
}
}
catch (Exception exc)
{
lg.Error(exc, "Errore in decodifica " + mapIOT_DWord[i].varName);
}
}
else if (mapIOT_DWord[i].varName.StartsWith("IOT_PLC_MSG_"))
{
// recupero NUMERO
try
{
numero = Convert.ToInt32(mapIOT_DWord[i].varName.Replace("IOT_PLC_MSG_", ""));
// copio allarmi in vettore generale AlarmFlags (dove lo gestisce) 4 byte alla volta
Buffer.BlockCopy(BitConverter.GetBytes(ncDevice.PLC_MemoryAreaIOT_DWord[byteNum]), 0, AlarmFlags, numero * 4, 4);
}
catch (Exception exc)
{
lg.Error(exc, "Errore in decodifica " + mapIOT_DWord[i].varName);
}
}
}
}
/// <summary>
/// Carica ed acquisisce dati del buffer STRING di memoria
/// </summary>
protected void getIotMem_String()
{
if (connectionOk)
{
// leggo TUTTO il blocco di memoria
inizio = DateTime.Now;
ncDevice.ReadBufferString();
if (utils.CRB("recTime")) TimingData.addResult(string.Format("R{0}-PLC_IOT-DWord", ncDevice.PLC_MemoryAreaIOT_DWord.Length), DateTime.Now.Subtract(inizio).Ticks);
}
else
{
lg.Error("Errore connessione mancante in getIotMem_DWord");
}
int numero = 0;
int byteNum = 0;
double valDouble = 0;
// Processing area STRING
for (int i = 0; i < mapIOT_String.Length; i++)
{
int.TryParse(mapIOT_String[i].memAddr, out byteNum);
#if false
if (mapIOT_String[i].varName.StartsWith("IOT_C_KU_AX_"))
{
// recupero NUMERO
try
{
numero = Convert.ToInt32(mapIOT_String[i].varName.Replace("IOT_C_KU_AX_", ""));
// salvo in vettore SE possibile...
if (numero <= vettAxis.Length)
{
vettAxis[numero - 1].mAxDistDone.Value = ncDevice.PLC_MemoryAreaIOT_String[byteNum];
}
else
{
lg.Error("Errore in inserimento vettore " + mapIOT_String[i].varName);
}
}
catch (Exception exc)
{
lg.Error(exc, "Errore in decodifica " + mapIOT_String[i].varName);
}
}
#endif
}
}
public override void getGlobalData()
{
base.getGlobalData();
// accodo dati path in DataMonitor......
StringBuilder sb = new StringBuilder();
if (connectionOk)
{
// leggo TUTTO il blocco di memoria
@@ -113,7 +798,7 @@ namespace MTC_Adapter
}
else
{
lg.Error("Errore connessione mancante in getStrobeAndAckStatus");
lg.Error("Errore connessione mancante in getGlobalData");
}
// dati override feed/speed...
@@ -168,7 +853,7 @@ namespace MTC_Adapter
needSave = procNumCU(needSave);
// per ESA calcolo a mano se ci sia stato impiego assi... salvo le istantanee mov precedenti...
double precVal=0;
double precVal = 0;
DateTime adesso = DateTime.Now;
TimeSpan accumTime = adesso.Subtract(lastChekAccumTimeAxis);
@@ -206,9 +891,8 @@ namespace MTC_Adapter
// copio allarmi in vettore generale AlarFlags (dove lo gestisce)...
Buffer.BlockCopy(ncDevice.PLC_MemoryAreaAllarmi, 0, AlarmFlags, 0, ncDevice.PLC_MemoryAreaAllarmi.Length);
//Buffer.BlockCopy(ncDevice.PLC_MemAreaAlarm_tmp, 0, AlarmFlags, 0, ncDevice.PLC_MemAreaAlarm_tmp.Length);
parentForm.dataMonitor = sb.ToString();
}
/// <summary>
/// Path percorso file prod
@@ -355,6 +1039,27 @@ namespace MTC_Adapter
}
}
}
/// <summary>
/// Processing di TUTTA l'area di memoria configurata e delle variabili derivate...
/// </summary>
public override void processAllMemory()
{
// inizializzo data monitor su FORM
parentForm.dataMonitor = "";
// recupero le varie memorie
getIotMem_Byte();
getIotMem_Word();
getIotMem_DWord();
getIotMem_String();
// processo componenti specifici x info...
getUnOp();
getPath();
getAxis();
lg.Info("DONE processAllMemory");
}
/// <summary>
/// Processo stti macchina...
/// </summary>
@@ -363,9 +1068,12 @@ namespace MTC_Adapter
// HARD CODE: forzo path 1 (indice 0...)
int idxPath = 0;
// accodo dati path in DataMonitor......
StringBuilder sb = new StringBuilder();
// verifica macchina accesa...
Byte V73 = ncDevice.PLC_MemoryAreaV[5];
if (((StFlag8)V73).HasFlag(StFlag8.B2))
{
mPower.Value = "ON";
@@ -384,6 +1092,7 @@ namespace MTC_Adapter
* */
Byte V70 = ncDevice.PLC_MemoryAreaV[2];
Byte V71 = ncDevice.PLC_MemoryAreaV[3];
if (((StFlag8)V70).HasFlag(StFlag8.B3))
{
vettPath[idxPath].mPathExeMode.Value = "FEED_HOLD"; //"FEEDHOLD";
@@ -446,27 +1155,23 @@ namespace MTC_Adapter
break;
}
}
/// <summary>
/// Recupera la speed override x i mandrini (UnOp)
/// </summary>
public override void getUnOp()
{
base.getUnOp();
// cicl su UnOp
for (int i = 0; i < currAdpConf.nUnOp; i++)
{
vettUnOp[i].mUnOpToolId.Value = (int)ncDevice.PLC_MemoryAreaEOK[31];
vettUnOp[i].mUnOpSpeedOverr.Value = SpeedRateOver;
}
}
public override void getPath()
{
base.getPath();
}
/// <summary>
/// Carica info accessorie assi (direzione, feed, ...)
/// </summary>
public override void getAxis()
{
base.getAxis();
// mostro assi in DataMonitor......
StringBuilder sb = new StringBuilder();
@@ -480,42 +1185,10 @@ namespace MTC_Adapter
// leggo in modo "cablato" i dati dei vari assi...
for (int i = 0; i < currAdpConf.nAxis; i++)
{
// in base a indice scelgo valore posizione e load
switch (i)
{
case 0:
newPos = (double)BitConverter.ToInt32(BitConverter.GetBytes(ncDevice.PLC_MemoryRead[240]), 0);
break;
case 1:
newPos = (double)BitConverter.ToInt32(BitConverter.GetBytes(ncDevice.PLC_MemoryRead[241]), 0);
break;
case 2:
newPos = (double)BitConverter.ToInt32(BitConverter.GetBytes(ncDevice.PLC_MemoryRead[242]), 0);
break;
case 3:
newPos = (double)BitConverter.ToInt32(BitConverter.GetBytes(ncDevice.PLC_MemoryRead[243]), 0);
break;
case 4:
newPos = (double)BitConverter.ToInt32(BitConverter.GetBytes(ncDevice.PLC_MemoryRead[244]), 0);
break;
case 5:
newPos = (double)BitConverter.ToInt32(BitConverter.GetBytes(ncDevice.PLC_MemoryRead[245]), 0);
break;
default:
// valPos = posAssi.p1;
// valLoad = loadAssi.svload1;
break;
}
// popolo valori...
//vettAxis[i].mAxLoad.Value = (double)(valLoad.data) / Math.Pow(10, valLoad.dec);
vettAxis[i].mAxPosAct.Value = newPos;
//vettAxis[i].mAxPosTgt.Value = newPos + (double)(valPos.dist.data) / Math.Pow(10, valPos.dist.dec);
vettAxis[i].mAxFeedAct.Value = FeedRate;
// calcolo distanza e salvo valore...
newPos = Convert.ToDouble(vettAxis[i].mAxPosAct.Value);
distPerc = newPos - prevPosAxis[i];
// sistemo direzione +/- (POS/NEG se lineari, CCW/CW se rotativi)
@@ -552,49 +1225,15 @@ namespace MTC_Adapter
if (utils.CRB("verbose"))
{
sb.AppendLine(string.Format("Asse {0}: PosAct:{1:N3}, ToGo:{2:N3}{3} | {4}", i, (double)(newPos) / utils.CRI("fattdecimale"), i, 0, direzione));
sb.AppendLine(string.Format("Asse {0}: PosAct:{1:N3}, | {2}", i, (double)(newPos), direzione));
}
// salvo valori vettore prec...
prevPosAxis[i] = newPos;
prevDirAxis[i] = newDir;
//vettAxis[i].mAxMainProc.Value = AxData.AxisMainProc;
//vettAxis[i].mAxIsMaster.Value = AxData.AxisIsMaster;
//vettAxis[i].mAxMastId.Value = AxData.AxisMastId;
//vettAxis[i].mAxFeedOver.Value = AxData.AxisFeedOver;
//vettAxis[i].mAxAccelAct.Value = AxData.AxisAccel;
//vettAxis[i].mAxBattery.Value = AxData.AxisBattery;
}
parentForm.dataMonitor += sb.ToString();
}
public override void processAlarm()
{
base.processAlarm();
// ora controllo "allarmi speciali" se si sono...
if (AlarmFlags != null)
{
// variabili helper
StFlag32 AlarmBlock = 0;
int eStopCode = utils.CRI("eStopCode") - 1; // è base zero memoria, ma allarmi base 1...
int memStart = (int)Math.Floor((double)eStopCode / 8);
// leggo 32bit alla volta...
AlarmBlock = (StFlag32)BitConverter.ToUInt32(AlarmFlags, memStart);
int eStopIndex = eStopCode - memStart * 8;
// converto! e aggiungo allarmi sollevati al corretto controller allarmi...
if (AlarmBlock.HasFlag((StFlag32)Math.Pow(2, eStopIndex)))
{
mEStop.Value = "TRIGGERED";
}
else
{
mEStop.Value = "ARMED";
}
}
}
}
}
+316 -177
View File
@@ -223,88 +223,104 @@ namespace MTC_Adapter
string UserAction = "";
string TestingData = "";
string UnkStrobe = "";
// controllo TUTTI i flag: se ce ne sono di alzati DEVO processare...
if (STRB_DW1 != StFlag32.NONE)
try
{
// blocco memoria x lettura TUTTI i dati di buffer M/S/T: 46 byte: 2byte (16bit) x (11+6+6) aree
byte[] MemBlock = new byte[46];
// leggo tutto!!!
memIndex = 10660;
inizio = DateTime.Now;
FanucMemRW(R, FANUC.MemType.R, memIndex, ref MemBlock);
if (utils.CRB("recTime")) TimingData.addResult(string.Format("R{0}-STRB_DW1", MemBlock.Length), DateTime.Now.Subtract(inizio).Ticks);
// check COD_M
bitNum = 0;
gestStrobeCodMST(bitNum, ref retACK_DW1, 0, MemBlock, "M");
// check COD_S
bitNum = 1;
gestStrobeCodMST(bitNum, ref retACK_DW1, 11, MemBlock, "S");
// check COD_T
bitNum = 2;
gestStrobeCodMST(bitNum, ref retACK_DW1, 17, MemBlock, "T");
// check FILE DATI MODIFICATO: ricaricare...
bitNum = 3;
if (STRB_DW1.HasFlag((StFlag32)Math.Pow(2, bitNum)))
// controllo TUTTI i flag: se ce ne sono di alzati DEVO processare...
if (STRB_DW1 != StFlag32.NONE)
{
// reload dati da file...
reloadDataFromFile();
// blocco memoria x lettura TUTTI i dati di buffer M/S/T: 46 byte: 2byte (16bit) x (11+6+6) aree
byte[] MemBlock = new byte[46];
// memorizzo allarme nel vettore ack....
retACK_DW1 = utils.setBitOnStFlag(retACK_DW1, true, bitNum);
// leggo tutto!!!
memIndex = 10660;
inizio = DateTime.Now;
FanucMemRW(R, FANUC.MemType.R, memIndex, ref MemBlock);
if (utils.CRB("recTime")) TimingData.addResult(string.Format("R{0}-STRB_DW1", MemBlock.Length), DateTime.Now.Subtract(inizio).Ticks);
// check COD_M
bitNum = 0;
gestStrobeCodMST(bitNum, ref retACK_DW1, 0, MemBlock, "M");
// check COD_S
bitNum = 1;
gestStrobeCodMST(bitNum, ref retACK_DW1, 11, MemBlock, "S");
// check COD_T
bitNum = 2;
gestStrobeCodMST(bitNum, ref retACK_DW1, 17, MemBlock, "T");
// check FILE DATI MODIFICATO: ricaricare...
bitNum = 3;
if (STRB_DW1.HasFlag((StFlag32)Math.Pow(2, bitNum)))
{
lg.Info("Notifica file modificato");
try
{
// reload dati da file...
reloadDataFromFile();
// memorizzo allarme nel vettore ack....
retACK_DW1 = utils.setBitOnStFlag(retACK_DW1, true, bitNum);
}
catch
{
lg.Info("Errore lettura dati da file");
}
}
// AREA strobe USER ACTION
// chiamato Start...
bitNum = 4;
gestStrobeUserAction(bitNum, ref retACK_DW1, ref UserAction, " (START) ");
// chiamato Stop...
bitNum = 5;
gestStrobeUserAction(bitNum, ref retACK_DW1, ref UserAction, " (STOP) ");
// chiamato Reset...
bitNum = 6;
gestStrobeUserAction(bitNum, ref retACK_DW1, ref UserAction, " (RESET) ");
// processo tutti gli strobe x i BIT 7-29 NON gestiti in modo da dare comunque ACK e event...
for (int i = 7; i < 30; i++)
{
gestStrobeUserAction(i, ref retACK_DW1, ref UnkStrobe, string.Format(" [STROBE_{0:00}] ", i));
}
// AREA strobe x TEST
// INIZIO TEST...
bitNum = 30;
if (STRB_DW1.HasFlag((StFlag32)Math.Pow(2, bitNum)))
{
// formatto stringa risultato
TestingData = string.Format("START TEST{0}", getTestData(utils.CRS("testCharSep")));
// memorizzo allarme nel vettore ack....
retACK_DW1 = utils.setBitOnStFlag(retACK_DW1, true, bitNum);
}
// FINE TEST...
bitNum = 31;
if (STRB_DW1.HasFlag((StFlag32)Math.Pow(2, bitNum)))
{
// formatto stringa risultato
TestingData = string.Format("STOP TEST{0}", getTestData(utils.CRS("testCharSep")));
// memorizzo allarme nel vettore ack....
retACK_DW1 = utils.setBitOnStFlag(retACK_DW1, true, bitNum);
}
}
// AREA strobe USER ACTION
// chiamato Start...
bitNum = 4;
gestStrobeUserAction(bitNum, ref retACK_DW1, ref UserAction, " (START) ");
// chiamato Stop...
bitNum = 5;
gestStrobeUserAction(bitNum, ref retACK_DW1, ref UserAction, " (STOP) ");
// chiamato Reset...
bitNum = 6;
gestStrobeUserAction(bitNum, ref retACK_DW1, ref UserAction, " (RESET) ");
// processo tutti gli strobe x i BIT 7-29 NON gestiti in modo da dare comunque ACK e event...
for (int i = 7; i < 30; i++)
else
{
gestStrobeUserAction(i, ref retACK_DW1, ref UnkStrobe, string.Format(" [STROBE_{0:00}] ", i));
}
// AREA strobe x TEST
// INIZIO TEST...
bitNum = 30;
if (STRB_DW1.HasFlag((StFlag32)Math.Pow(2, bitNum)))
{
// formatto stringa risultato
TestingData = string.Format("START TEST{0}", getTestData(utils.CRS("testCharSep")));
// memorizzo allarme nel vettore ack....
retACK_DW1 = utils.setBitOnStFlag(retACK_DW1, true, bitNum);
}
// FINE TEST...
bitNum = 31;
if (STRB_DW1.HasFlag((StFlag32)Math.Pow(2, bitNum)))
{
// formatto stringa risultato
TestingData = string.Format("STOP TEST{0}", getTestData(utils.CRS("testCharSep")));
// memorizzo allarme nel vettore ack....
retACK_DW1 = utils.setBitOnStFlag(retACK_DW1, true, bitNum);
// se mi sono rimasti degli strobe di lettura allarmi alzati li abbasso
if (ACK_DW1 != StFlag32.NONE)
{
// inizializzo 4 byte a zero!!!
retACK_DW1 = new byte[4];
}
}
}
else
catch
{
// se mi sono rimasti degli strobe di lettura allarmi alzati li abbasso
if (ACK_DW1 != StFlag32.NONE)
{
// inizializzo 4 byte a zero!!!
retACK_DW1 = new byte[4];
}
lg.Info("Errore in strobe");
}
// 2017.01.16 INVIO vettore azioni (1 o +)... SE CE NE SONO!
@@ -429,22 +445,32 @@ namespace MTC_Adapter
totRighe = File.ReadLines(fileName).Count();
// creo un vettore della dimensione corretta... conta anche commenti tanto poi riduco...
generalStatus = new Dictionary<string, string>();
// carica da file...
System.IO.StreamReader file = new System.IO.StreamReader(fileName);
// leggo 1 linea alla volta...
string[] valori;
while ((linea = file.ReadLine()) != null)
try
{
// SE non è un commento...
if (linea.Substring(0, 1) != "#")
// carica da file...
System.IO.StreamReader file = new System.IO.StreamReader(fileName);
if (file != null)
{
valori = linea.Split(utils.CRC("testCharSep"));
generalStatus.Add(valori[0], valori[1]);
// leggo 1 linea alla volta...
string[] valori;
while ((linea = file.ReadLine()) != null)
{
// SE non è un commento...
if (linea.Substring(0, 1) != "#")
{
valori = linea.Split(utils.CRC("testCharSep"));
generalStatus.Add(valori[0], valori[1]);
}
}
// chiudo file
file.Close();
if (utils.CRB("verbose")) lg.Info("Fine lettura dati da file");
}
}
// chiudo file
file.Close();
if (utils.CRB("verbose")) lg.Info("Fine lettura dati da file");
catch
{
lg.Info("Errore in lettura dati da file");
}
// ora salvo valori letti...
@@ -565,15 +591,17 @@ namespace MTC_Adapter
inizio = DateTime.Now;
FanucMemRW(R, FANUC.MemType.R, memIndex, ref MemBlock);
if (utils.CRB("recTime")) TimingData.addResult(string.Format("R{0}-STRB_DW0", MemBlock.Length), DateTime.Now.Subtract(inizio).Ticks);
try
if (AlarmFlags != null)
{
// aggiorno vettore allarmi x intero!
Buffer.BlockCopy(MemBlock, 0, AlarmFlags, 0, MemBlock.Length);
}
catch (Exception exc)
{
lg.Error(string.Format("Errore in BLOCKCOPY{0}{1}", Environment.NewLine, exc));
try
{
// aggiorno vettore allarmi x intero!
Buffer.BlockCopy(MemBlock, 0, AlarmFlags, 0, MemBlock.Length);
}
catch (Exception exc)
{
lg.Error(string.Format("Errore in BLOCKCOPY{0}{1}", Environment.NewLine, exc));
}
}
}
else
@@ -1552,7 +1580,6 @@ namespace MTC_Adapter
public override void getAxis()
{
// mostro assi in DataMonitor......
StringBuilder sb = new StringBuilder();
@@ -1576,92 +1603,204 @@ namespace MTC_Adapter
for (int i = 0; i < currAdpConf.nAxis; i++)
{
// in base a indice scelgo valore posizione e load
switch (i)
// per sicurezza try-catch
try
{
case 0:
valPos = posAssi.p1;
valLoad = loadAssi.svload1;
break;
case 1:
valPos = posAssi.p2;
valLoad = loadAssi.svload2;
break;
case 2:
valPos = posAssi.p3;
valLoad = loadAssi.svload3;
break;
case 3:
valPos = posAssi.p4;
valLoad = loadAssi.svload4;
break;
case 4:
valPos = posAssi.p5;
valLoad = loadAssi.svload5;
break;
case 5:
valPos = posAssi.p6;
valLoad = loadAssi.svload6;
break;
default:
valPos = posAssi.p1;
valLoad = loadAssi.svload1;
break;
// in base a indice scelgo valore posizione e load
switch (i)
{
case 0:
valPos = posAssi.p1;
valLoad = loadAssi.svload1;
break;
case 1:
valPos = posAssi.p2;
valLoad = loadAssi.svload2;
break;
case 2:
valPos = posAssi.p3;
valLoad = loadAssi.svload3;
break;
case 3:
valPos = posAssi.p4;
valLoad = loadAssi.svload4;
break;
case 4:
valPos = posAssi.p5;
valLoad = loadAssi.svload5;
break;
case 5:
valPos = posAssi.p6;
valLoad = loadAssi.svload6;
break;
case 6:
valPos = posAssi.p7;
valLoad = loadAssi.svload7;
break;
case 7:
valPos = posAssi.p8;
valLoad = loadAssi.svload8;
break;
case 8:
valPos = posAssi.p9;
valLoad = loadAssi.svload9;
break;
case 9:
valPos = posAssi.p10;
valLoad = loadAssi.svload10;
break;
case 10:
valPos = posAssi.p11;
valLoad = loadAssi.svload11;
break;
case 11:
valPos = posAssi.p12;
valLoad = loadAssi.svload12;
break;
case 12:
valPos = posAssi.p13;
valLoad = loadAssi.svload13;
break;
case 13:
valPos = posAssi.p14;
valLoad = loadAssi.svload14;
break;
case 14:
valPos = posAssi.p15;
valLoad = loadAssi.svload15;
break;
case 15:
valPos = posAssi.p16;
valLoad = loadAssi.svload16;
break;
case 16:
valPos = posAssi.p17;
valLoad = loadAssi.svload17;
break;
case 17:
valPos = posAssi.p18;
valLoad = loadAssi.svload18;
break;
case 18:
valPos = posAssi.p19;
valLoad = loadAssi.svload19;
break;
case 19:
valPos = posAssi.p20;
valLoad = loadAssi.svload20;
break;
case 20:
valPos = posAssi.p21;
valLoad = loadAssi.svload21;
break;
case 21:
valPos = posAssi.p22;
valLoad = loadAssi.svload22;
break;
case 22:
valPos = posAssi.p23;
valLoad = loadAssi.svload23;
break;
case 23:
valPos = posAssi.p24;
valLoad = loadAssi.svload24;
break;
case 24:
valPos = posAssi.p25;
valLoad = loadAssi.svload25;
break;
case 25:
valPos = posAssi.p26;
valLoad = loadAssi.svload26;
break;
case 26:
valPos = posAssi.p27;
valLoad = loadAssi.svload27;
break;
case 27:
valPos = posAssi.p28;
valLoad = loadAssi.svload28;
break;
case 28:
valPos = posAssi.p29;
valLoad = loadAssi.svload29;
break;
case 29:
valPos = posAssi.p30;
valLoad = loadAssi.svload30;
break;
case 30:
valPos = posAssi.p31;
valLoad = loadAssi.svload31;
break;
case 31:
valPos = posAssi.p32;
valLoad = loadAssi.svload32;
break;
default:
// 2017.03.01 suggerimento Fabio: in CMS_FANUC in advanced compiler options mettere FS30D=1,SIEMENS=1 x leggere + assi?!?
valPos = posAssi.p1;
valLoad = loadAssi.svload1;
break;
}
// popolo valori...
vettAxis[i].mAxLoad.Value = (double)(valLoad.data) / Math.Pow(10, valLoad.dec);
newPos = (double)(valPos.abs.data) / Math.Pow(10, valPos.abs.dec);
vettAxis[i].mAxPosAct.Value = newPos;
vettAxis[i].mAxPosTgt.Value = newPos + (double)(valPos.dist.data) / Math.Pow(10, valPos.dist.dec);
vettAxis[i].mAxFeedAct.Value = FeedRate;
// calcolo distanza e salvo valore...
distPerc = newPos - prevPosAxis[i];
// sistemo direzione +/- (POS/NEG se lineari, CCW/CW se rotativi)
if (distPerc != 0)
{
newDir = Convert.ToInt32(distPerc / Math.Abs(distPerc));
}
else
{
newDir = prevDirAxis[i];
}
// verifico tipo direzione da tipo asse...
tipoAsse = vettAxis[i].mAxType.Value.ToString();
if (tipoAsse == "LINEAR")
{
// ?: conditional operator.
direzione = (newDir > 0) ? "POSITIVE" : "NEGATIVE";
}
else if (tipoAsse == "ROTARY")
{
direzione = (newDir > 0) ? "CLOCKWISE" : "COUNTER_CLOCKWISE";
}
vettAxis[i].mAxDir.Value = direzione;
if (utils.CRB("verbose"))
{
sb.AppendLine(string.Format("Asse {0}: PosAct:{1:N3}, ToGo:{2:N3}{3} | {4}", valPos.abs.name, (double)(valPos.abs.data) / Math.Pow(10, valPos.abs.dec), valPos.dist.name, (double)(valPos.dist.data) / Math.Pow(10, valPos.dist.dec), direzione));
}
// salvo valori vettore prec...
prevPosAxis[i] = newPos;
prevDirAxis[i] = newDir;
//vettAxis[i].mAxMainProc.Value = AxData.AxisMainProc;
//vettAxis[i].mAxIsMaster.Value = AxData.AxisIsMaster;
//vettAxis[i].mAxMastId.Value = AxData.AxisMastId;
vettAxis[i].mAxFeedOver.Value = FeedRateOver;
//vettAxis[i].mAxAccelAct.Value = AxData.AxisAccel;
//vettAxis[i].mAxBattery.Value = AxData.AxisBattery;
}
// popolo valori...
vettAxis[i].mAxLoad.Value = (double)(valLoad.data) / Math.Pow(10, valLoad.dec);
newPos = (double)(valPos.abs.data) / Math.Pow(10, valPos.abs.dec);
vettAxis[i].mAxPosAct.Value = newPos;
vettAxis[i].mAxPosTgt.Value = newPos + (double)(valPos.dist.data) / Math.Pow(10, valPos.dist.dec);
vettAxis[i].mAxFeedAct.Value = FeedRate;
// calcolo distanza e salvo valore...
distPerc = newPos - prevPosAxis[i];
// sistemo direzione +/- (POS/NEG se lineari, CCW/CW se rotativi)
if (distPerc != 0)
catch
{
newDir = Convert.ToInt32(distPerc / Math.Abs(distPerc));
lg.Error(string.Format("Errore in lettura asse {0}", i));
}
else
{
newDir = prevDirAxis[i];
}
// verifico tipo direzione da tipo asse...
tipoAsse = vettAxis[i].mAxType.Value.ToString();
if (tipoAsse == "LINEAR")
{
// ?: conditional operator.
direzione = (newDir > 0) ? "POSITIVE" : "NEGATIVE";
}
else if (tipoAsse == "ROTARY")
{
direzione = (newDir > 0) ? "CLOCKWISE" : "COUNTER_CLOCKWISE";
}
vettAxis[i].mAxDir.Value = direzione;
if (utils.CRB("verbose"))
{
sb.AppendLine(string.Format("Asse {0}: PosAct:{1:N3}, ToGo:{2:N3}{3} | {4}", valPos.abs.name, (double)(valPos.abs.data) / Math.Pow(10, valPos.abs.dec), valPos.dist.name, (double)(valPos.dist.data) / Math.Pow(10, valPos.dist.dec), direzione));
}
// salvo valori vettore prec...
prevPosAxis[i] = newPos;
prevDirAxis[i] = newDir;
//vettAxis[i].mAxMainProc.Value = AxData.AxisMainProc;
//vettAxis[i].mAxIsMaster.Value = AxData.AxisIsMaster;
//vettAxis[i].mAxMastId.Value = AxData.AxisMastId;
vettAxis[i].mAxFeedOver.Value = FeedRateOver;
//vettAxis[i].mAxAccelAct.Value = AxData.AxisAccel;
//vettAxis[i].mAxBattery.Value = AxData.AxisBattery;
}
parentForm.dataMonitor += sb.ToString();
+193 -211
View File
@@ -21,12 +21,8 @@ namespace MTC_Adapter
/// <summary>
/// Singola pompa da vuoto, 0..n
/// </summary>
public class VacuumPomp : element
public class VacuumPump : element
{
/// <summary>
/// Alias
/// </summary>
public Event mVacPumpAlias;
/// <summary>
/// valore indca stato aperto/chiuso
/// </summary>
@@ -39,18 +35,13 @@ namespace MTC_Adapter
/// Classe Vacuum Pump (pompa)
/// </summary>
/// <param name="baseElem">element base contenente parametri (da XML)</param>
public VacuumPomp(element baseElem)
public VacuumPump(element baseElem)
{
ident = baseElem.ident;
alias = baseElem.alias;
fonte = baseElem.fonte;
dataRefList = baseElem.dataRefList;
// genero elementi specifici MTConnect
mVacPumpAlias = new Event(string.Format("{0}_Alias", ident));
mVacPumpAlias.Value = alias;
mVacPumpStatus = new Event(dataRefList[0].Key);
mVacPumpWrkTime = new Event(dataRefList[1].Key);
mVacPumpStatus = new Event(string.Format("{0}_Status", ident));
mVacPumpWrkTime = new Event(string.Format("{0}_WrkTime", ident));
}
}
/// <summary>
@@ -58,15 +49,10 @@ namespace MTC_Adapter
/// </summary>
public class VacuumAct : element
{
/// <summary>
/// Alias
/// </summary>
public Event mVacActAlias;
/// <summary>
/// valore numero attivazioni/disattivazioni valvola
/// </summary>
public Event mVacActCount;
/// <summary>
/// Classe Vacuum Actuator (valvola)
/// </summary>
@@ -74,13 +60,9 @@ namespace MTC_Adapter
public VacuumAct(element baseElem)
{
ident = baseElem.ident;
alias = baseElem.alias;
fonte = baseElem.fonte;
dataRefList = baseElem.dataRefList;
mVacActAlias = new Event(string.Format("{0}_Alias", ident));
mVacActAlias.Value = alias;
mVacActCount = new Event(dataRefList[0].Key);
mVacActCount = new Event(string.Format("{0}_Count", ident));
}
}
/// <summary>
@@ -88,15 +70,14 @@ namespace MTC_Adapter
/// </summary>
public class Lubro : element
{
/// <summary>
/// Alias
/// </summary>
public Event mLubroAlias;
/// <summary>
/// numero pompate necessarie per far scattare sensore
/// </summary>
public Event mLubroNum;
/// <summary>
/// Status
/// </summary>
public Event mLubroStatus;
/// <summary>
/// Classe Lubrorefrigerante
/// </summary>
@@ -104,13 +85,10 @@ namespace MTC_Adapter
public Lubro(element baseElem)
{
ident = baseElem.ident;
alias = baseElem.alias;
fonte = baseElem.fonte;
dataRefList = baseElem.dataRefList;
mLubroAlias = new Event(string.Format("{0}_Alias", ident));
mLubroAlias.Value = alias;
mLubroNum = new Event(dataRefList[0].Key);
mLubroNum = new Event(string.Format("{0}_Num", ident));
mLubroStatus = new Event(string.Format("{0}_Status", ident));
}
}
/// <summary>
@@ -118,15 +96,10 @@ namespace MTC_Adapter
/// </summary>
public class Cooler : element
{
/// <summary>
/// Alias
/// </summary>
public Event mCoolAlias;
/// <summary>
/// Stato istantaneo (evento aperto/chiuso)
/// </summary>
public Event mCoolStatus;
/// <summary>
/// Classe refrigeratore
/// </summary>
@@ -134,13 +107,9 @@ namespace MTC_Adapter
public Cooler(element baseElem)
{
ident = baseElem.ident;
alias = baseElem.alias;
fonte = baseElem.fonte;
dataRefList = baseElem.dataRefList;
mCoolAlias = new Event(string.Format("{0}_Alias", ident));
mCoolAlias.Value = alias;
mCoolStatus = new Event(dataRefList[0].Key);
mCoolStatus = new Event(string.Format("{0}_Status", ident));
}
}
/// <summary>
@@ -148,10 +117,6 @@ namespace MTC_Adapter
/// </summary>
public class Press : element
{
/// <summary>
/// Alias
/// </summary>
public Event mPressAlias;
/// <summary>
/// valore pressione istantaneo
/// </summary>
@@ -163,13 +128,9 @@ namespace MTC_Adapter
public Press(element baseElem)
{
ident = baseElem.ident;
alias = baseElem.alias;
fonte = baseElem.fonte;
dataRefList = baseElem.dataRefList;
mPressAlias = new Event(string.Format("{0}_Alias", ident));
mPressAlias.Value = alias;
mPressValIst = new Sample(dataRefList[0].Key);
mPressValIst = new Sample(string.Format("{0}_Value", ident));
}
}
/// <summary>
@@ -177,10 +138,6 @@ namespace MTC_Adapter
/// </summary>
public class Tempe : element
{
/// <summary>
/// Alias
/// </summary>
public Event mTempAlias;
/// <summary>
/// valore temperatura istantaneo
/// </summary>
@@ -192,13 +149,40 @@ namespace MTC_Adapter
public Tempe(element baseElem)
{
ident = baseElem.ident;
alias = baseElem.alias;
fonte = baseElem.fonte;
dataRefList = baseElem.dataRefList;
mTempAlias = new Event(string.Format("{0}_Alias", ident));
mTempAlias.Value = alias;
mTempValIst = new Sample(dataRefList[0].Key);
mTempValIst = new Sample(string.Format("{0}_Value", ident));
}
}
/// <summary>
/// Singola Area Memoria (Kvara 1..4)
/// </summary>
public class MemArea : element
{
/// <summary>
/// Programma caricato
/// </summary>
public Event mMemAreaProgName;
/// <summary>
/// Num esecuzioni programma
/// </summary>
public Event mMemAreaProgNumExe;
/// <summary>
/// Num esecuzioni programma
/// </summary>
public Event mMemAreaProgNumRep;
/// <summary>
/// INIT Classe Memory Area
/// </summary>
/// <param name="baseElem">element base contenente parametri (da XML)</param>
public MemArea(element baseElem)
{
ident = baseElem.ident;
dataRefList = baseElem.dataRefList;
mMemAreaProgName = new Event(string.Format("{0}_PROG_NAME", ident));
mMemAreaProgNumExe = new Event(string.Format("{0}_NUM_EXE", ident));
mMemAreaProgNumRep = new Event(string.Format("{0}_NUM_REP", ident));
}
}
/// <summary>
@@ -206,10 +190,6 @@ namespace MTC_Adapter
/// </summary>
public class Path : element
{
/// <summary>
/// Alias
/// </summary>
public MTConnect.Message mPathAlias;
/// <summary>
/// Tipo Path (LAVOR/ASSERV)
/// </summary>
@@ -306,7 +286,6 @@ namespace MTC_Adapter
/// Allarmi PCL del PATH
/// </summary>
public Condition mPathAlarmPLC;
/// <summary>
/// Classe Path con Idx e descrizione
/// </summary>
@@ -314,35 +293,31 @@ namespace MTC_Adapter
public Path(element baseElem)
{
ident = baseElem.ident;
alias = baseElem.alias;
fonte = baseElem.fonte;
dataRefList = baseElem.dataRefList;
mPathAlias = new MTConnect.Message(string.Format("{0}_Alias", ident));
mPathAlias.Value = alias;
mPathFeed = new Sample(dataRefList[0].Key);
mPathFeedOver = new Sample(dataRefList[1].Key);
mPathRapidOver = new Sample(dataRefList[2].Key);
mPathPosActX = new Sample(dataRefList[3].Key);
mPathPosActY = new Sample(dataRefList[4].Key);
mPathPosActZ = new Sample(dataRefList[5].Key);
mPathPosActI = new Sample(dataRefList[6].Key);
mPathPosActJ = new Sample(dataRefList[7].Key);
mPathPosActK = new Sample(dataRefList[8].Key);
mPathFeed = new Sample(string.Format("{0}_FeedRate", ident));
mPathFeedOver = new Sample(string.Format("{0}_FeedOverr", ident));
mPathRapidOver = new Sample(string.Format("{0}_RapidOverr", ident));
mPathPosActX = new Sample(string.Format("{0}_PosActX", ident));
mPathPosActY = new Sample(string.Format("{0}_PosActY", ident));
mPathPosActZ = new Sample(string.Format("{0}_PosActZ", ident));
mPathPosActI = new Sample(string.Format("{0}_PosActI", ident));
mPathPosActJ = new Sample(string.Format("{0}_PosActJ", ident));
mPathPosActK = new Sample(string.Format("{0}_PosActK", ident));
// aggiunta x revisione 2016.05.05
mPathType = new MTConnect.Message(dataRefList[9].Key);
mPathPartId = new Event(dataRefList[10].Key);
mPathPartCount = new Event(dataRefList[11].Key);
mPathCodM = new MTConnect.Message(dataRefList[12].Key);
mPathCodS = new MTConnect.Message(dataRefList[13].Key);
mPathCodT = new MTConnect.Message(dataRefList[14].Key);
mPathRunMode = new Event(dataRefList[15].Key);
mPathExeMode = new Event(dataRefList[16].Key);
mPathCurrProg = new Event(dataRefList[17].Key);
mPathCurrProgRowNum = new Event(dataRefList[18].Key);
mPathActiveAxes = new Event(dataRefList[19].Key);
mPathCodG_Act = new MTConnect.Message(dataRefList[20].Key);
mPathSubMode = new MTConnect.Message(dataRefList[21].Key);
mPathType = new MTConnect.Message(string.Format("{0}_Type", ident));
mPathPartId = new Event(string.Format("{0}_PartId", ident));
mPathPartCount = new Event(string.Format("{0}_PZ_TOT", ident));
mPathCodM = new MTConnect.Message(string.Format("{0}_Cod_M", ident));
mPathCodS = new MTConnect.Message(string.Format("{0}_Cod_S", ident));
mPathCodT = new MTConnect.Message(string.Format("{0}_Cod_T", ident));
mPathRunMode = new Event(string.Format("{0}_RUN_MODE", ident));
mPathExeMode = new Event(string.Format("{0}_EXE_MODE", ident));
mPathCurrProg = new Event(string.Format("{0}_CurrProg", ident));
mPathCurrProgRowNum = new Event(string.Format("{0}_CurrProg_RowNum", ident));
mPathActiveAxes = new Event(string.Format("{0}_ActiveAxes", ident));
mPathCodG_Act = new MTConnect.Message(string.Format("{0}_CodG_Act", ident));
mPathSubMode = new MTConnect.Message(string.Format("{0}_SubMode", ident));
mPathAlarmCNC = new Condition(string.Format("{0}_AlarmCNC", ident));
mPathAlarmPLC = new Condition(string.Format("{0}_AlarmPLC", ident));
}
@@ -353,11 +328,7 @@ namespace MTC_Adapter
public class UnOp : element
{
/// <summary>
/// Alias
/// </summary>
public MTConnect.Message mUnOpAlias;
/// <summary>
/// Alias
/// ToolID
/// </summary>
public Event mUnOpToolId;
/// <summary>
@@ -397,27 +368,28 @@ namespace MTC_Adapter
/// </summary>
public Sample mUnOpAccTime;
/// <summary>
/// contatore cumulato di giri mandrino (migliaia)
/// </summary>
public Sample mUnOpKRev;
/// <summary>
/// Classe Unita Operatrice (Mandrino) con Idx e descrizione
/// </summary>
/// <param name="baseElem">element base contenente parametri (da XML)</param>
public UnOp(element baseElem)
{
ident = baseElem.ident;
alias = baseElem.alias;
fonte = baseElem.fonte;
dataRefList = baseElem.dataRefList;
mUnOpAlias = new MTConnect.Message(string.Format("{0}_Alias", ident));
mUnOpAlias.Value = alias;
mUnOpToolId = new Event(dataRefList[0].Key);
mUnOpNumCU = new Event(dataRefList[1].Key);
mUnOpStatus = new Event(dataRefList[2].Key);
mUnOpVitaRes = new Event(dataRefList[3].Key);
mUnOpSpeed = new Sample(dataRefList[4].Key);
mUnOpSpeedOverr = new Sample(dataRefList[5].Key);
mUnOpLoad = new Sample(dataRefList[6].Key);
mUnOpAccTime = new Sample(dataRefList[7].Key);
mUnOpVitaResType = new MTConnect.Message(dataRefList[8].Key);
mUnOpToolId = new Event(string.Format("{0}_ToolId", ident));
mUnOpNumCU = new Event(string.Format("{0}_NumCU", ident));
mUnOpStatus = new Event(string.Format("{0}_Status", ident));
mUnOpVitaRes = new Event(string.Format("{0}_VitaRes", ident));
mUnOpSpeed = new Sample(string.Format("{0}_Speed", ident));
mUnOpSpeedOverr = new Sample(string.Format("{0}_SpeedOverr", ident));
mUnOpLoad = new Sample(string.Format("{0}_Load", ident));
mUnOpAccTime = new Sample(string.Format("{0}_AccTime", ident));
mUnOpVitaResType = new MTConnect.Message(string.Format("{0}_VitaResType", ident));
mUnOpKRev = new Sample(string.Format("{0}_KRev", ident));
}
}
/// <summary>
@@ -425,10 +397,6 @@ namespace MTC_Adapter
/// </summary>
public class Axis : element
{
/// <summary>
/// Descrizione / Alias
/// </summary>
public MTConnect.Message mAxAlias;
/// <summary>
/// Processo di appartenenza
/// </summary>
@@ -497,37 +465,31 @@ namespace MTC_Adapter
/// Allarmi PCL del PATH
/// </summary>
public Condition mAxAlarmPLC;
/// <summary>
/// Classe Asse con relativo ID UNIVOCO ed alias
/// Classe Asse con relativo ID UNIVOCO
/// </summary>
/// <param name="baseElem">element base contenente parametri (da XML)</param>
public Axis(element baseElem)
{
ident = baseElem.ident;
alias = baseElem.alias;
fonte = baseElem.fonte;
dataRefList = baseElem.dataRefList;
// inizializzo vari eventi, sample, condizioni
mAxAlias = new MTConnect.Message(string.Format("{0}_Alias", ident));
mAxAlias.Value = alias;
mAxMainProc = new MTConnect.Message(dataRefList[0].Key);
mAxIsMaster = new MTConnect.Message(dataRefList[1].Key);
mAxMastId = new Event(dataRefList[2].Key);
mAxType = new Event(dataRefList[3].Key);
mAxType.Value = dataRefList[3].Value;
mAxDir = new Event(dataRefList[4].Key);
mAxLoad = new Sample(dataRefList[5].Key);
mAxPosAct = new Sample(dataRefList[6].Key);
mAxPosTgt = new Sample(dataRefList[7].Key);
mAxFeedAct = new Sample(dataRefList[8].Key);
mAxFeedOver = new Sample(dataRefList[9].Key);
mAxAccelAct = new Sample(dataRefList[10].Key);
mAxAccTime = new Sample(dataRefList[11].Key);
mAxBattery = new Sample(dataRefList[12].Key);
mAxDistDone = new Sample(dataRefList[13].Key);
mAxInvDDone = new Sample(dataRefList[14].Key);
mAxType = new Event(dataRefList[0].Key);
mAxType.Value = dataRefList[0].Value;
mAxMainProc = new MTConnect.Message(string.Format("{0}_MainProc", ident));
mAxIsMaster = new MTConnect.Message(string.Format("{0}_IsMast", ident));
mAxMastId = new Event(string.Format("{0}_MastId", ident));
mAxDir = new Event(string.Format("{0}_Dir", ident));
mAxLoad = new Sample(string.Format("{0}_Load", ident));
mAxPosAct = new Sample(string.Format("{0}_PosAct", ident));
mAxPosTgt = new Sample(string.Format("{0}_PosTgt", ident));
mAxFeedAct = new Sample(string.Format("{0}_FeedAct", ident));
mAxFeedOver = new Sample(string.Format("{0}_FeedOver", ident));
mAxAccelAct = new Sample(string.Format("{0}_AccelAct", ident));
mAxAccTime = new Sample(string.Format("{0}_AccTime", ident));
mAxBattery = new Sample(string.Format("{0}_Battery", ident));
mAxDistDone = new Sample(string.Format("{0}_DistDone", ident));
mAxInvDDone = new Sample(string.Format("{0}_InvDDone", ident));
mAxAlarmCNC = new Condition(string.Format("{0}_AlarmCNC", ident));
mAxAlarmPLC = new Condition(string.Format("{0}_AlarmPLC", ident));
@@ -559,12 +521,16 @@ namespace MTC_Adapter
/// <summary>
/// valore booleano di check se sia stato AVVIATO l'adapter (Running)
/// </summary>
public bool adpRunning;
public bool adpRunning = false;
/// <summary>
/// valore booleano (richiesta di riavvio automatico)
/// </summary>
public bool adpTryRestart;
/// <summary>
/// Determina se utilizzare blocchi di memoria IOT contigui (e quindi processing "monoblocco" semplificato"=
/// </summary>
public bool procIotMem = false;
/// <summary>
/// porta x adapter (x restart)
/// </summary>
protected int adpPortNum;
@@ -819,7 +785,7 @@ namespace MTC_Adapter
return (StFlag32)BitConverter.ToUInt32(Acknowl, 12);
}
}
/// <summary>
/// Strobe mask PLC
/// </summary>
@@ -844,7 +810,7 @@ namespace MTC_Adapter
#endregion
#region Events
/// <summary>
/// Asset Changed - cambio asset
/// </summary>
@@ -934,7 +900,7 @@ namespace MTC_Adapter
#region oggetti complessi/completi
public VacuumPomp[] vettVacPump;
public VacuumPump[] vettVacPump;
public VacuumAct[] vettVacAct;
public Lubro[] vettLubro;
public Cooler[] vettCooler;
@@ -943,6 +909,7 @@ namespace MTC_Adapter
public Path[] vettPath;
public UnOp[] vettUnOp;
public Axis[] vettAxis;
public MemArea[] vettMemArea;
#endregion
@@ -958,6 +925,7 @@ namespace MTC_Adapter
lg = LogManager.GetCurrentClassLogger();
lg.Info("Avvio AdapterGeneric");
procIotMem = utils.CRB("procIotMem");
currAdpConf = adpConf;
@@ -1001,11 +969,20 @@ namespace MTC_Adapter
mAdapter.AddDataItem(mUnkStatus);
mAdapter.AddDataItem(mUnkStrobe);
// Aree memoria
vettMemArea = new MemArea[adpConf.nMemArea];
for (int i = 0; i < adpConf.nMemArea; i++)
{
vettMemArea[i] = new MemArea(adpConf.MemArea[i]);
mAdapter.AddDataItem(vettMemArea[i].mMemAreaProgName);
mAdapter.AddDataItem(vettMemArea[i].mMemAreaProgNumExe);
mAdapter.AddDataItem(vettMemArea[i].mMemAreaProgNumRep);
}
// Pompe vuoto
vettVacPump = new VacuumPomp[adpConf.nVacuumPump];
vettVacPump = new VacuumPump[adpConf.nVacuumPump];
for (int i = 0; i < adpConf.nVacuumPump; i++)
{
vettVacPump[i] = new VacuumPomp(adpConf.VacuumPump[i]);
vettVacPump[i] = new VacuumPump(adpConf.VacuumPump[i]);
mAdapter.AddDataItem(vettVacPump[i].mVacPumpStatus);
mAdapter.AddDataItem(vettVacPump[i].mVacPumpWrkTime);
}
@@ -1014,7 +991,6 @@ namespace MTC_Adapter
for (int i = 0; i < adpConf.nVacuumAct; i++)
{
vettVacAct[i] = new VacuumAct(adpConf.VacuumAct[i]);
//mAdapter.AddDataItem(vettVacAct[i].mVacActAlias);
mAdapter.AddDataItem(vettVacAct[i].mVacActCount);
}
// Lubrorefrigeranti
@@ -1022,15 +998,14 @@ namespace MTC_Adapter
for (int i = 0; i < adpConf.nLubro; i++)
{
vettLubro[i] = new Lubro(adpConf.Lubro[i]);
//mAdapter.AddDataItem(vettLubro[i].mLubroAlias);
mAdapter.AddDataItem(vettLubro[i].mLubroNum);
mAdapter.AddDataItem(vettLubro[i].mLubroStatus);
}
// Cooler
vettCooler = new Cooler[adpConf.nCooler];
for (int i = 0; i < adpConf.nCooler; i++)
{
vettCooler[i] = new Cooler(adpConf.Cooler[i]);
//mAdapter.AddDataItem(vettCooler[i].mCoolAlias);
mAdapter.AddDataItem(vettCooler[i].mCoolStatus);
}
// Press
@@ -1038,7 +1013,6 @@ namespace MTC_Adapter
for (int i = 0; i < adpConf.nPress; i++)
{
vettPress[i] = new Press(adpConf.Press[i]);
//mAdapter.AddDataItem(vettPress[i].mPressAlias);
mAdapter.AddDataItem(vettPress[i].mPressValIst);
}
// Temp
@@ -1046,7 +1020,6 @@ namespace MTC_Adapter
for (int i = 0; i < adpConf.nTemp; i++)
{
vettTempe[i] = new Tempe(adpConf.Temp[i]);
//mAdapter.AddDataItem(vettTempe[i].mTempAlias);
mAdapter.AddDataItem(vettTempe[i].mTempValIst);
}
// Path
@@ -1054,7 +1027,6 @@ namespace MTC_Adapter
for (int i = 0; i < adpConf.nPath; i++)
{
vettPath[i] = new Path(adpConf.Path[i]);
mAdapter.AddDataItem(vettPath[i].mPathAlias);
mAdapter.AddDataItem(vettPath[i].mPathFeed);
mAdapter.AddDataItem(vettPath[i].mPathFeedOver);
mAdapter.AddDataItem(vettPath[i].mPathRapidOver);
@@ -1081,14 +1053,12 @@ namespace MTC_Adapter
// aggiungo condizioni allarme...
mAdapter.AddDataItem(vettPath[i].mPathAlarmCNC);
mAdapter.AddDataItem(vettPath[i].mPathAlarmPLC);
// altre aggiunte
}
// UnOp
vettUnOp = new UnOp[adpConf.nUnOp];
for (int i = 0; i < adpConf.nUnOp; i++)
{
vettUnOp[i] = new UnOp(adpConf.UnOp[i]);
//mAdapter.AddDataItem(vettUnOp[i].mUnOpAlias);
mAdapter.AddDataItem(vettUnOp[i].mUnOpToolId);
mAdapter.AddDataItem(vettUnOp[i].mUnOpNumCU);
mAdapter.AddDataItem(vettUnOp[i].mUnOpStatus);
@@ -1098,13 +1068,13 @@ namespace MTC_Adapter
mAdapter.AddDataItem(vettUnOp[i].mUnOpSpeedOverr);
mAdapter.AddDataItem(vettUnOp[i].mUnOpLoad);
mAdapter.AddDataItem(vettUnOp[i].mUnOpAccTime);
mAdapter.AddDataItem(vettUnOp[i].mUnOpKRev);
}
// Assi
vettAxis = new Axis[adpConf.nAxis];
for (int i = 0; i < adpConf.nAxis; i++)
{
vettAxis[i] = new Axis(adpConf.Axis[i]);
//mAdapter.AddDataItem(vettAxis[i].mAxAlias);
mAdapter.AddDataItem(vettAxis[i].mAxMainProc);
mAdapter.AddDataItem(vettAxis[i].mAxIsMaster);
mAdapter.AddDataItem(vettAxis[i].mAxMastId);
@@ -1130,13 +1100,8 @@ namespace MTC_Adapter
mAdapter.AddDataItem(mMessage);
// allarmi "base"
//mAdapter.AddDataItem(mAlarmSystem);
mAdapter.AddDataItem(mAlarmCNC);
mAdapter.AddDataItem(mAlarmPLC);
//mAdapter.AddDataItem(mAlarmHMI);
//mAdapter.AddDataItem(mAlarmGeneral);
// azioni utente
mAdapter.AddDataItem(mUserAction);
@@ -1180,7 +1145,7 @@ namespace MTC_Adapter
// 2016.07.20: dimensione AlarmFlags è la MAX tra quella del numero allarmi ed il numero allarmi standard dalla memoria...
if (numByte < 32) numByte = 32;
AlarmFlags = new byte[numByte];
if (utils.CRB("verbose")) lg.Info("Fine caricamento vettore allarmi");
if (utils.CRB("verbose")) lg.Info(string.Format("Fine caricamento vettore allarmi: {0} allarmi caricati!", rumRiga));
}
/// <summary>
/// Caricamento altri file necessari epr adapter all'avvio
@@ -1268,7 +1233,7 @@ namespace MTC_Adapter
return new otherData(valori[0], memAddr, valori[1].Trim(), valori[2].Trim());
}
/// <summary>
/// Decodifica file allarme
/// Decodifica file MAP
/// </summary>
/// <param name="linea"></param>
/// <param name="separator"></param>
@@ -1311,9 +1276,9 @@ namespace MTC_Adapter
{
contDistMovAssi[i] = getStoredValUInt(string.Format("Axis_{0:00}_DistDone", i + 1));
contNumInvAssi[i] = getStoredValUInt(string.Format("Axis_{0:00}_InvDDone", i + 1));
contAccTimeAssi[i] = getStoredValUInt(string.Format("Axis_{0:00}_AccTime", i + 1));
contAccTimeAssi[i] = getStoredValDouble(string.Format("Axis_{0:00}_AccTime", i + 1));
}
for (int i = 0; i < currAdpConf.nVacuumPump; i++)
{
currVacPumpWrkTime[i] = getStoredValUInt(string.Format("VacPump_{0:00}_WrkTime", i + 1));
@@ -1355,7 +1320,7 @@ namespace MTC_Adapter
// resetto running flag...
adpCommAct = false;
// carico valori da adapter x i conteggi
contOreMaccOn = currAdpConf.ContOreMaccOn;
contOreMaccLav = currAdpConf.ContOreMaccLav;
@@ -1545,49 +1510,62 @@ namespace MTC_Adapter
// processing degli strobes di allarme (da ULTIMA rappresentazione vettore dell'ADP)
processAlarm();
// ciclo HF: recupero update status & strobes vari
if (ciclo == gatherCycle.HF)
// verifico se processare tutto "in un colpo solo"
if (procIotMem)
{
// parte che eseguo SEMPRE: RECUPERO stato di tutti gli strobe/status e degli ack attualmente noti
getStrobeAndAckStatus();
// faccio refresh degli allarmi segnalati (da strobe su vettore locale)
refreshAlarmState(STRB_DW0, true);
// acquisizione degli status
processStatus();
// processing degli strobes
processStrobe();
processAllMemory();
// ciclo lento x log...
if (ciclo == gatherCycle.LF)
{
// eventuale log!
if (utils.CRB("recTime")) logTimeResults();
}
}
else if (ciclo == gatherCycle.MF)
// oppure in "modalità classica" con multistep...
else
{
// leggo parametri a media freq (dati globali, path, assi, Unità Operatrice)
getGlobalData();
getUnOp();
getPath();
getAxis();
}
// ciclo lento
else if (ciclo == gatherCycle.LF)
{
// leggo EVENTUALI parametri da config file
getConfigParam();
///acquisisco dati su programma in esecuzione e dati generali (stato, orologio, power...)
getSlowChangingData();
// ciclo HF: recupero update status & strobes vari
if (ciclo == gatherCycle.HF)
{
// parte che eseguo SEMPRE: RECUPERO stato di tutti gli strobe/status e degli ack attualmente noti
getStrobeAndAckStatus();
// eventuale log!
if (utils.CRB("recTime")) logTimeResults();
}
// ciclo lentissimo
else if (ciclo == gatherCycle.VLF)
{
lg.Info("Richiesta lettura completa allarmi attivi");
// faccio comunque rilettura completa allarmi...
forceAlarmCheck();
}
// faccio refresh degli allarmi segnalati (da strobe su vettore locale)
refreshAlarmState(STRB_DW0, true);
// acquisizione degli status
processStatus();
// processing degli strobes
processStrobe();
}
else if (ciclo == gatherCycle.MF)
{
// leggo parametri a media freq (dati globali, path, assi, Unità Operatrice)
getGlobalData();
getUnOp();
getPath();
getAxis();
}
// ciclo lento
else if (ciclo == gatherCycle.LF)
{
// leggo EVENTUALI parametri da config file
getConfigParam();
///acquisisco dati su programma in esecuzione e dati generali (stato, orologio, power...)
getSlowChangingData();
// processo e svuoto eventuali code di invio per Codici M/S/T
trySendCodMST();
// eventuale log!
if (utils.CRB("recTime")) logTimeResults();
}
// ciclo lentissimo
else if (ciclo == gatherCycle.VLF)
{
lg.Info("Richiesta lettura completa allarmi attivi");
// faccio comunque rilettura completa allarmi...
forceAlarmCheck();
}
// processo e svuoto eventuali code di invio per Codici M/S/T
trySendCodMST();
}
// INVIO dati variati!
mAdapter.SendChanged();
@@ -1853,7 +1831,11 @@ namespace MTC_Adapter
}
}
}
/// <summary>
/// Classe fittizia in caso di processing GLOBALE di tutto in 1 solo colpo...
/// </summary>
public virtual void processAllMemory()
{ }
/// <summary>
/// metodo di recupero dei dati di identificativo macchina - DA CONF!!!
/// </summary>
@@ -1900,7 +1882,7 @@ namespace MTC_Adapter
/// </summary>
public int FeedRateOver { get; set; }
/// <summary>
/// Override dei rapidi
/// OVERRIDE dei rapidi
/// </summary>
public int RapidOver { get; set; }
/// <summary>
@@ -4,6 +4,7 @@
<appSettings>
<add key="autoLoadConf" value="true" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="openDumpOnStart" value="false" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="procIotMem" value="false" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="startMinimized" value="true" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="windowCanMax" value="false" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="trayClose" value="false" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
@@ -4,6 +4,7 @@
<appSettings>
<add key="autoLoadConf" value="true" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="openDumpOnStart" value="false" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="procIotMem" value="false" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="startMinimized" value="true" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="windowCanMax" value="false" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="trayClose" value="false" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
@@ -4,6 +4,10 @@
<appSettings>
<add key="autoLoadConf" value="true" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="openDumpOnStart" value="false" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="procIotMem" value="true" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<!--clock di base update...-->
<add key="timerIntMs" value="10" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<!--COMMENTATO IN DEBUG LOCALE-->
<add key="startMinimized" value="true" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="windowCanMax" value="false" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="trayClose" value="false" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
+8 -1
View File
@@ -28,7 +28,7 @@
<!--Sviluppo Steamware
IP ETH: 10.74.82.110/255.255.255.0
ipPLC = "10.74.82.110"-->
<add key="ipPLC" value="10.74.82.110" />
<add key="ipPLC" value="192.168.139.1"/>
<!--PRODUZIONE
IP ETH: 192.168.139.201/255.255.255.0
ipPLC = "192.168.139.1"-->
@@ -60,6 +60,13 @@
<add key="CounterListFilePath" value="CounterList.map" />
<add key="StatusListFilePath" value="StatusList.map" />
<add key="SubModeListFilePath" value="SubModeList.map" />
<!--conf gestione "semplificata" accesso a tutta la memoria ogni volta-->
<add key="procIotMem" value="true" />
<!--file configurazione ESA KVARA-->
<add key="IOTByteFilePath" value="IOT_ByteList.map" />
<add key="IOTWordFilePath" value="IOT_WordList.map" />
<add key="IOTDWordFilePath" value="IOT_DWordList.map" />
<add key="IOTStringFilePath" value="IOT_StringList.map" />
<!--percorso file scambio dati "lenti" e conf MaintData memory area -->
<add key="GeneralStatusFilePath" value="CmsGeneralStatus.mtc" />
<add key="ScmProdFile" value="SCM_prodFile.pro" />
@@ -1,706 +1,271 @@
<?xml version="1.0" encoding="utf-8"?>
<AdapterConf xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Version>1</Version>
<NomeAdapt>ADAPTER_FANUC</NomeAdapt>
<TipoAdapt>FANUC</TipoAdapt>
<NomeAdapt>ADAPTER_ESAGV</NomeAdapt>
<TipoAdapt>ESAGV</TipoAdapt>
<ContOreMaccOn>0</ContOreMaccOn>
<ContOreMaccLav>0</ContOreMaccLav>
<VacuumPump>
<element>
<ident>VacPump_01</ident>
<alias>Pompa 1</alias>
<fonte>Random</fonte>
<dataRefList>
<dataRef>
<Key>VacPump_01_Status</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>VacPump_01_WrkTime</Key>
<Value>0</Value>
</dataRef>
</dataRefList>
<dataRefList />
</element>
<element>
<ident>VacPump_02</ident>
<alias>Pompa 2</alias>
<fonte>Random</fonte>
<dataRefList>
<dataRef>
<Key>VacPump_02_Status</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>VacPump_02_WrkTime</Key>
<Value>0</Value>
</dataRef>
</dataRefList>
<dataRefList />
</element>
</VacuumPump>
<VacuumAct>
<element>
<ident>VacAct_01</ident>
<alias>Attuatore vuoto 1</alias>
<fonte>Random</fonte>
<dataRefList>
<dataRef>
<Key>VacAct_01_Count</Key>
<Value>0</Value>
</dataRef>
</dataRefList>
<dataRefList />
</element>
<element>
<ident>VacAct_02</ident>
<alias>Attuatore vuoto 2</alias>
<fonte>Random</fonte>
<dataRefList>
<dataRef>
<Key>VacAct_02_Count</Key>
<Value>0</Value>
</dataRef>
</dataRefList>
<dataRefList />
</element>
<element>
<ident>VacAct_03</ident>
<dataRefList />
</element>
<element>
<ident>VacAct_04</ident>
<dataRefList />
</element>
</VacuumAct>
<Lubro>
<element>
<ident>Lubro_01</ident>
<alias>Lubrorefrigerante 1</alias>
<fonte>Random</fonte>
<dataRefList>
<dataRef>
<Key>Lubro_01_Num</Key>
<Value>0</Value>
</dataRef>
</dataRefList>
<dataRefList />
</element>
<element>
<ident>Lubro_02</ident>
<alias>Lubrorefrigerante 2</alias>
<fonte>Random</fonte>
<dataRefList>
<dataRef>
<Key>Lubro_02_Num</Key>
<Value>0</Value>
</dataRef>
</dataRefList>
<dataRefList />
</element>
</Lubro>
<Cooler>
<element>
<ident>Cooler_01</ident>
<alias>Cooler 1</alias>
<fonte>Random</fonte>
<dataRefList>
<dataRef>
<Key>Cooler_01_Status</Key>
<Value>0</Value>
</dataRef>
</dataRefList>
<dataRefList />
</element>
<element>
<ident>Cooler_02</ident>
<alias>Cooler 2</alias>
<fonte>Random</fonte>
<dataRefList>
<dataRef>
<Key>Cooler_02_Status</Key>
<Value>0</Value>
</dataRef>
</dataRefList>
<dataRefList />
</element>
</Cooler>
<Press>
<element>
<ident>Press_01</ident>
<alias>Pressostato 1</alias>
<fonte>Random</fonte>
<dataRefList>
<dataRef>
<Key>Press_01_Value</Key>
<Value>0</Value>
</dataRef>
</dataRefList>
<dataRefList />
</element>
<element>
<ident>Press_02</ident>
<alias>Pressostato 2</alias>
<fonte>Random</fonte>
<dataRefList>
<dataRef>
<Key>Press_02_Value</Key>
<Value>0</Value>
</dataRef>
</dataRefList>
<dataRefList />
</element>
</Press>
<Temp>
<element>
<ident>Temp_01</ident>
<alias>Sonda Temperatura 1</alias>
<fonte>Random</fonte>
<dataRefList>
<dataRef>
<Key>Temp_01_Value</Key>
<Value>0</Value>
</dataRef>
</dataRefList>
<dataRefList />
</element>
<element>
<ident>Temp_02</ident>
<alias>Sonda Temperatura 2</alias>
<fonte>Random</fonte>
<dataRefList>
<dataRef>
<Key>Temp_02_Value</Key>
<Value>0</Value>
</dataRef>
</dataRefList>
<dataRefList />
</element>
</Temp>
<Path>
<element>
<ident>Path_01</ident>
<alias>Path num 1</alias>
<fonte>Random</fonte>
<dataRefList>
<dataRef>
<Key>Path_01_FeedRate</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Path_01_FeedOverr</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Path_01_RapidOverr</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Path_01_PosActX</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Path_01_PosActY</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Path_01_PosActZ</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Path_01_PosActI</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Path_01_PosActJ</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Path_01_PosActK</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Path_01_Type</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Path_01_PartId</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Path_01_PZ_TOT</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Path_01_Cod_M</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Path_01_Cod_S</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Path_01_Cod_T</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Path_01_RUN_MODE</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Path_01_EXE_MODE</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Path_01_CurrProg</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Path_01_CurrProg_RowNum</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Path_01_ActiveAxes</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Path_01_CodG_Act</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Path_01_SubMode</Key>
<Value>0</Value>
</dataRef>
</dataRefList>
<dataRefList />
</element>
</Path>
<UnOp>
<element>
<ident>UnOp_01</ident>
<alias>Unita Op num 1</alias>
<fonte>Random</fonte>
<dataRefList>
<dataRef>
<Key>UnOp_01_ToolId</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>UnOp_01_NumCU</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>UnOp_01_Status</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>UnOp_01_VitaRes</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>UnOp_01_Speed</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>UnOp_01_SpeedOverr</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>UnOp_01_Load</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>UnOp_01_AccTime</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>UnOp_01_VitaResType</Key>
<Value>0</Value>
</dataRef>
</dataRefList>
<dataRefList />
</element>
<element>
<ident>UnOp_02</ident>
<dataRefList />
</element>
<element>
<ident>UnOp_03</ident>
<dataRefList />
</element>
<element>
<ident>UnOp_04</ident>
<dataRefList />
</element>
<element>
<ident>UnOp_05</ident>
<dataRefList />
</element>
<element>
<ident>UnOp_06</ident>
<dataRefList />
</element>
<element>
<ident>UnOp_07</ident>
<dataRefList />
</element>
<element>
<ident>UnOp_08</ident>
<dataRefList />
</element>
</UnOp>
<Axis>
<element>
<ident>Axis_01</ident>
<alias>Asse num 1</alias>
<fonte>Random</fonte>
<dataRefList>
<dataRef>
<Key>Axis_01_MainProc</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_01_IsMast</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_01_MastId</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_01_Type</Key>
<Value>LINEAR</Value>
</dataRef>
<dataRef>
<Key>Axis_01_Dir</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_01_Load</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_01_PosAct</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_01_PosTgt</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_01_FeedAct</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_01_FeedOver</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_01_AccelAct</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_01_AccTime</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_01_Battery</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_01_DistDone</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_01_InvDDone</Key>
<Value>0</Value>
</dataRef>
</dataRefList>
</element>
<element>
<ident>Axis_02</ident>
<alias>Asse num 2</alias>
<fonte>Random</fonte>
<dataRefList>
<dataRef>
<Key>Axis_02_MainProc</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_02_IsMast</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_02_MastId</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_02_Type</Key>
<Value>LINEAR</Value>
</dataRef>
<dataRef>
<Key>Axis_02_Dir</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_02_Load</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_02_PosAct</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_02_PosTgt</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_02_FeedAct</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_02_FeedOver</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_02_AccelAct</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_02_AccTime</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_02_Battery</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_02_DistDone</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_02_InvDDone</Key>
<Value>0</Value>
</dataRef>
</dataRefList>
</element>
<element>
<ident>Axis_03</ident>
<alias>Asse num 3</alias>
<fonte>Random</fonte>
<dataRefList>
<dataRef>
<Key>Axis_03_MainProc</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_03_IsMast</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_03_MastId</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_03_Type</Key>
<Value>LINEAR</Value>
</dataRef>
<dataRef>
<Key>Axis_03_Dir</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_03_Load</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_03_PosAct</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_03_PosTgt</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_03_FeedAct</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_03_FeedOver</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_03_AccelAct</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_03_AccTime</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_03_Battery</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_03_DistDone</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_03_InvDDone</Key>
<Value>0</Value>
</dataRef>
</dataRefList>
</element>
<element>
<ident>Axis_04</ident>
<alias>Asse num 4</alias>
<fonte>Random</fonte>
<dataRefList>
<dataRef>
<Key>Axis_04_MainProc</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_04_IsMast</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_04_MastId</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_04_Type</Key>
<Value>ROTARY</Value>
</dataRef>
<dataRef>
<Key>Axis_04_Dir</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_04_Load</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_04_PosAct</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_04_PosTgt</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_04_FeedAct</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_04_FeedOver</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_04_AccelAct</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_04_AccTime</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_04_Battery</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_04_DistDone</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_04_InvDDone</Key>
<Value>0</Value>
</dataRef>
</dataRefList>
</element>
<element>
<ident>Axis_05</ident>
<alias>Asse num 5</alias>
<fonte>Random</fonte>
<dataRefList>
<dataRef>
<Key>Axis_05_MainProc</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_05_IsMast</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_05_MastId</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_05_Type</Key>
<Value>ROTARY</Value>
</dataRef>
<dataRef>
<Key>Axis_05_Dir</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_05_Load</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_05_PosAct</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_05_PosTgt</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_05_FeedAct</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_05_FeedOver</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_05_AccelAct</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_05_AccTime</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_05_Battery</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_05_DistDone</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_05_InvDDone</Key>
<Value>0</Value>
</dataRef>
</dataRefList>
</element>
<element>
<ident>Axis_06</ident>
<alias>Asse num 6</alias>
<fonte>Random</fonte>
<dataRefList>
<dataRef>
<Key>Axis_06_MainProc</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_06_IsMast</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_06_MastId</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_06_Type</Key>
<Value>LINEAR</Value>
</dataRef>
</dataRefList>
</element>
<element>
<ident>Axis_07</ident>
<dataRefList>
<dataRef>
<Key>Axis_06_Dir</Key>
<Value>0</Value>
<Key>Axis_07_Type</Key>
<Value>LINEAR</Value>
</dataRef>
</dataRefList>
</element>
<element>
<ident>Axis_08</ident>
<dataRefList>
<dataRef>
<Key>Axis_06_Load</Key>
<Value>0</Value>
<Key>Axis_08_Type</Key>
<Value>LINEAR</Value>
</dataRef>
</dataRefList>
</element>
<element>
<ident>Axis_09</ident>
<dataRefList>
<dataRef>
<Key>Axis_06_PosAct</Key>
<Value>0</Value>
<Key>Axis_09_Type</Key>
<Value>LINEAR</Value>
</dataRef>
</dataRefList>
</element>
<element>
<ident>Axis_10</ident>
<dataRefList>
<dataRef>
<Key>Axis_06_PosTgt</Key>
<Value>0</Value>
<Key>Axis_10_Type</Key>
<Value>LINEAR</Value>
</dataRef>
</dataRefList>
</element>
<element>
<ident>Axis_11</ident>
<dataRefList>
<dataRef>
<Key>Axis_06_FeedAct</Key>
<Value>0</Value>
<Key>Axis_11_Type</Key>
<Value>LINEAR</Value>
</dataRef>
</dataRefList>
</element>
<element>
<ident>Axis_12</ident>
<dataRefList>
<dataRef>
<Key>Axis_06_FeedOver</Key>
<Value>0</Value>
<Key>Axis_12_Type</Key>
<Value>LINEAR</Value>
</dataRef>
</dataRefList>
</element>
<element>
<ident>Axis_13</ident>
<dataRefList>
<dataRef>
<Key>Axis_06_AccelAct</Key>
<Value>0</Value>
<Key>Axis_13_Type</Key>
<Value>LINEAR</Value>
</dataRef>
</dataRefList>
</element>
<element>
<ident>Axis_14</ident>
<dataRefList>
<dataRef>
<Key>Axis_06_AccTime</Key>
<Value>0</Value>
<Key>Axis_14_Type</Key>
<Value>LINEAR</Value>
</dataRef>
</dataRefList>
</element>
<element>
<ident>Axis_15</ident>
<dataRefList>
<dataRef>
<Key>Axis_06_Battery</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_06_DistDone</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_06_InvDDone</Key>
<Value>0</Value>
<Key>Axis_15_Type</Key>
<Value>LINEAR</Value>
</dataRef>
</dataRefList>
</element>
</Axis>
<MemArea>
<element>
<ident>MemArea_01</ident>
<dataRefList />
</element>
<element>
<ident>MemArea_02</ident>
<dataRefList />
</element>
<element>
<ident>MemArea_03</ident>
<dataRefList />
</element>
<element>
<ident>MemArea_04</ident>
<dataRefList />
</element>
</MemArea>
</AdapterConf>
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,24 @@
# Commenti con cancelletto, struttura un variabile per riga, tipo chiave|valore (occhio che il separatore è configurato da .cofig come "testCharSep"); spazi e tabulazioni dovrei trimmarli in acquisizione (qui inseriti per comodità di lettura)
0.0|IOT_EXEC |BOOL
0.1|IOT_HOLD |BOOL
0.2|IOT_EMG |BOOL
0.3|IOT_ALRM |BOOL
0.4|IOT_MACHON |BOOL
0.5|IOT_READY |BOOL
0.6|libero |BOOL
0.7|libero |BOOL
001|libero |BYTE
002|libero |BYTE
003|IOT_MODECN |BYTE
004|IOT_OVRF |BYTE
005|IOT_OVRS |BYTE
006|IOT_LUB_01_STA |BYTE
007|IOT_LUB_01_CNT |BYTE
008|IOT_I_MD_01 |BYTE
009|IOT_I_MD_02 |BYTE
010|IOT_I_MD_03 |BYTE
011|IOT_I_MD_04 |BYTE
012|IOT_I_MD_05 |BYTE
013|IOT_I_MD_06 |BYTE
014|IOT_I_MD_07 |BYTE
015|IOT_I_MD_08 |BYTE
@@ -0,0 +1,67 @@
# Commenti con cancelletto, struttura un variabile per riga, tipo chiave|valore (occhio che il separatore è configurato da .cofig come "testCharSep"); spazi e tabulazioni dovrei trimmarli in acquisizione (qui inseriti per comodità di lettura)
000|IOT_C_KU_AX_01 |DWORD
001|IOT_C_KU_AX_02 |DWORD
002|IOT_C_KU_AX_03 |DWORD
003|IOT_C_KU_AX_04 |DWORD
004|IOT_C_KU_AX_05 |DWORD
005|IOT_C_KU_AX_06 |DWORD
006|IOT_C_KU_AX_07 |DWORD
007|IOT_C_KU_AX_08 |DWORD
008|IOT_C_KU_AX_09 |DWORD
009|IOT_C_KU_AX_10 |DWORD
010|IOT_C_KU_AX_11 |DWORD
011|IOT_C_KU_AX_12 |DWORD
012|IOT_C_KU_AX_13 |DWORD
013|IOT_C_KU_AX_14 |DWORD
014|IOT_C_KU_AX_15 |DWORD
015|IOT_C_KINV_AX_01 |DWORD
016|IOT_C_KINV_AX_02 |DWORD
017|IOT_C_KINV_AX_03 |DWORD
018|IOT_C_KINV_AX_04 |DWORD
019|IOT_C_KINV_AX_05 |DWORD
020|IOT_C_KINV_AX_06 |DWORD
021|IOT_C_KINV_AX_07 |DWORD
022|IOT_C_KINV_AX_08 |DWORD
023|IOT_C_KINV_AX_09 |DWORD
024|IOT_C_KINV_AX_10 |DWORD
025|IOT_C_KINV_AX_11 |DWORD
026|IOT_C_KINV_AX_12 |DWORD
027|IOT_C_KINV_AX_13 |DWORD
028|IOT_C_KINV_AX_14 |DWORD
029|IOT_C_KINV_AX_15 |DWORD
030|IOT_POS_AX_01 |DWORD
031|IOT_POS_AX_02 |DWORD
032|IOT_POS_AX_03 |DWORD
033|IOT_POS_AX_04 |DWORD
034|IOT_POS_AX_05 |DWORD
035|IOT_POS_AX_06 |DWORD
036|IOT_POS_AX_07 |DWORD
037|IOT_POS_AX_08 |DWORD
038|IOT_POS_AX_09 |DWORD
039|IOT_POS_AX_10 |DWORD
040|IOT_POS_AX_11 |DWORD
041|IOT_POS_AX_12 |DWORD
042|IOT_POS_AX_13 |DWORD
043|IOT_POS_AX_14 |DWORD
044|IOT_POS_AX_15 |DWORD
045|IOT_C_KREV_MD_01 |DWORD
046|IOT_C_KREV_MD_02 |DWORD
047|IOT_C_KREV_MD_03 |DWORD
048|IOT_C_KREV_MD_04 |DWORD
049|IOT_C_KREV_MD_05 |DWORD
050|IOT_C_KREV_MD_06 |DWORD
051|IOT_C_KREV_MD_07 |DWORD
052|IOT_C_KREV_MD_08 |DWORD
053|IOT_PLC_MSG_00 |DWORD
054|IOT_PLC_MSG_01 |DWORD
055|IOT_PLC_MSG_02 |DWORD
056|IOT_PLC_MSG_03 |DWORD
057|IOT_PLC_MSG_04 |DWORD
058|IOT_PLC_MSG_05 |DWORD
059|IOT_PLC_MSG_06 |DWORD
060|IOT_PLC_MSG_07 |DWORD
061|IOT_PLC_MSG_08 |DWORD
062|IOT_PLC_MSG_09 |DWORD
063|IOT_PLC_MSG_10 |DWORD
064|IOT_PLC_MSG_11 |DWORD
065|IOT_PLC_MSG_12 |DWORD
@@ -0,0 +1,5 @@
# Commenti con cancelletto, struttura un variabile per riga, tipo chiave|valore (occhio che il separatore è configurato da .cofig come "testCharSep"); spazi e tabulazioni dovrei trimmarli in acquisizione (qui inseriti per comodità di lettura)
1 001|IOT_PGMID_A1 |STRING
2 002|IOT_PGMID_A2 |STRING
3 003|IOT_PGMID_A3 |STRING
4 004|IOT_PGMID_A4 |STRING
@@ -0,0 +1,45 @@
# Commenti con cancelletto, struttura un variabile per riga, tipo chiave|valore (occhio che il separatore è configurato da .cofig come "testCharSep"); spazi e tabulazioni dovrei trimmarli in acquisizione (qui inseriti per comodità di lettura)
000|IOT_S_MD_01 |WORD
001|IOT_S_MD_02 |WORD
002|IOT_S_MD_03 |WORD
003|IOT_S_MD_04 |WORD
004|IOT_S_MD_05 |WORD
005|IOT_S_MD_06 |WORD
006|IOT_S_MD_07 |WORD
007|IOT_S_MD_08 |WORD
008|IOT_T_MD_01 |WORD
009|IOT_T_MD_02 |WORD
010|IOT_T_MD_03 |WORD
011|IOT_T_MD_04 |WORD
012|IOT_T_MD_05 |WORD
013|IOT_T_MD_06 |WORD
014|IOT_T_MD_07 |WORD
015|IOT_T_MD_08 |WORD
016|IOT_C_H_VAC_01 |WORD
017|IOT_C_H_VAC_02 |WORD
018|IOT_C_H_VAC_03 |WORD
019|IOT_C_H_VAC_04 |WORD
020|IOT_C_TC_01 |WORD
021|IOT_C_TC_02 |WORD
022|IOT_C_TC_03 |WORD
023|IOT_C_TC_04 |WORD
024|IOT_C_TC_05 |WORD
025|IOT_C_TC_06 |WORD
026|IOT_C_TC_07 |WORD
027|IOT_C_TC_08 |WORD
028|IOT_C_H_MD_01 |WORD
029|IOT_C_H_MD_02 |WORD
030|IOT_C_H_MD_03 |WORD
031|IOT_C_H_MD_04 |WORD
032|IOT_C_H_MD_05 |WORD
033|IOT_C_H_MD_06 |WORD
034|IOT_C_H_MD_07 |WORD
035|IOT_C_H_MD_08 |WORD
036|IOT_PGMR_A_01 |WORD
037|IOT_PGMR_A_02 |WORD
038|IOT_PGMR_A_03 |WORD
039|IOT_PGMR_A_04 |WORD
040|IOT_C_EXEC_A_01 |WORD
041|IOT_C_EXEC_A_02 |WORD
042|IOT_C_EXEC_A_03 |WORD
043|IOT_C_EXEC_A_04 |WORD
+14 -1
View File
@@ -12,6 +12,7 @@
<TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<IsWebBootstrapper>false</IsWebBootstrapper>
<PublishUrl>publish\</PublishUrl>
<Install>true</Install>
<InstallFrom>Disk</InstallFrom>
@@ -24,7 +25,6 @@
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
<IsWebBootstrapper>false</IsWebBootstrapper>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
</PropertyGroup>
@@ -163,10 +163,20 @@
</None>
<None Include="App.SCM-ESA.config">
<DependentUpon>App.config</DependentUpon>
<SubType>Designer</SubType>
</None>
<None Include="DATA\CmsGeneralStatus.mtc">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="DATA\CONF\IOT_StringList.map">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="DATA\CONF\IOT_DWordList.map">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="DATA\CONF\IOT_WordList.map">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="DATA\CONF\StatusList.map">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
@@ -178,6 +188,9 @@
<Content Include="Resources\CMS\probe.xml">
<SubType>Designer</SubType>
</Content>
<None Include="DATA\CONF\IOT_ByteList.map">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="NLog.xsd">
<SubType>Designer</SubType>
</None>
+123 -122
View File
@@ -116,9 +116,9 @@
this.lblPLC_ADP = new System.Windows.Forms.Label();
this.statusStrip1 = new System.Windows.Forms.StatusStrip();
this.lblApp = new System.Windows.Forms.ToolStripStatusLabel();
this.lblStatus = new System.Windows.Forms.ToolStripStatusLabel();
this.MainProgrBar = new System.Windows.Forms.ToolStripProgressBar();
this.lblVers = new System.Windows.Forms.ToolStripStatusLabel();
this.MainProgrBar = new System.Windows.Forms.ToolStripProgressBar();
this.lblStatus = new System.Windows.Forms.ToolStripStatusLabel();
this.groupBox13 = new System.Windows.Forms.GroupBox();
this.cbPathSel = new System.Windows.Forms.ComboBox();
this.label38 = new System.Windows.Forms.Label();
@@ -245,7 +245,7 @@
this.PlcErr_02.AutoSize = true;
this.PlcErr_02.Location = new System.Drawing.Point(96, 43);
this.PlcErr_02.Name = "PlcErr_02";
this.PlcErr_02.Size = new System.Drawing.Size(72, 17);
this.PlcErr_02.Size = new System.Drawing.Size(83, 19);
this.PlcErr_02.TabIndex = 6;
this.PlcErr_02.Text = "PlcErr_05";
this.PlcErr_02.UseVisualStyleBackColor = true;
@@ -273,7 +273,7 @@
this.label8.AutoSize = true;
this.label8.Location = new System.Drawing.Point(118, 26);
this.label8.Name = "label8";
this.label8.Size = new System.Drawing.Size(28, 13);
this.label8.Size = new System.Drawing.Size(30, 15);
this.label8.TabIndex = 19;
this.label8.Text = "Text";
//
@@ -282,7 +282,7 @@
this.label7.AutoSize = true;
this.label7.Location = new System.Drawing.Point(4, 26);
this.label7.Name = "label7";
this.label7.Size = new System.Drawing.Size(32, 13);
this.label7.Size = new System.Drawing.Size(36, 15);
this.label7.TabIndex = 18;
this.label7.Text = "Code";
//
@@ -306,7 +306,7 @@
this.label6.AutoSize = true;
this.label6.Location = new System.Drawing.Point(12, 367);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(0, 13);
this.label6.Size = new System.Drawing.Size(0, 15);
this.label6.TabIndex = 43;
//
// AxFeedOverValue
@@ -328,7 +328,7 @@
this.label9.AutoSize = true;
this.label9.Location = new System.Drawing.Point(12, 166);
this.label9.Name = "label9";
this.label9.Size = new System.Drawing.Size(57, 13);
this.label9.Size = new System.Drawing.Size(63, 15);
this.label9.TabIndex = 24;
this.label9.Text = "Feed Over";
//
@@ -346,7 +346,7 @@
this.label10.AutoSize = true;
this.label10.Location = new System.Drawing.Point(12, 145);
this.label10.Name = "label10";
this.label10.Size = new System.Drawing.Size(50, 13);
this.label10.Size = new System.Drawing.Size(54, 15);
this.label10.TabIndex = 22;
this.label10.Text = "Feed Act";
//
@@ -370,7 +370,7 @@
this.label13.AutoSize = true;
this.label13.Location = new System.Drawing.Point(31, 48);
this.label13.Name = "label13";
this.label13.Size = new System.Drawing.Size(40, 13);
this.label13.Size = new System.Drawing.Size(44, 15);
this.label13.TabIndex = 48;
this.label13.Text = "Part ID";
//
@@ -387,7 +387,7 @@
this.label12.AutoSize = true;
this.label12.Location = new System.Drawing.Point(15, 74);
this.label12.Name = "label12";
this.label12.Size = new System.Drawing.Size(53, 13);
this.label12.Size = new System.Drawing.Size(58, 15);
this.label12.TabIndex = 46;
this.label12.Text = "Halt Type";
//
@@ -416,49 +416,49 @@
this.X.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.DisplayedCells;
this.X.HeaderText = "X";
this.X.Name = "X";
this.X.Width = 39;
this.X.Width = 44;
//
// Y
//
this.Y.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.DisplayedCells;
this.Y.HeaderText = "Y";
this.Y.Name = "Y";
this.Y.Width = 39;
this.Y.Width = 43;
//
// Z
//
this.Z.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.DisplayedCells;
this.Z.HeaderText = "Z";
this.Z.Name = "Z";
this.Z.Width = 39;
this.Z.Width = 43;
//
// I
//
this.I.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.DisplayedCells;
this.I.HeaderText = "I";
this.I.Name = "I";
this.I.Width = 35;
this.I.Width = 39;
//
// J
//
this.J.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.DisplayedCells;
this.J.HeaderText = "J";
this.J.Name = "J";
this.J.Width = 37;
this.J.Width = 42;
//
// K
//
this.K.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.DisplayedCells;
this.K.HeaderText = "K";
this.K.Name = "K";
this.K.Width = 39;
this.K.Width = 44;
//
// PlcErr_03
//
this.PlcErr_03.AutoSize = true;
this.PlcErr_03.Location = new System.Drawing.Point(96, 66);
this.PlcErr_03.Name = "PlcErr_03";
this.PlcErr_03.Size = new System.Drawing.Size(72, 17);
this.PlcErr_03.Size = new System.Drawing.Size(83, 19);
this.PlcErr_03.TabIndex = 5;
this.PlcErr_03.Text = "PlcErr_06";
this.PlcErr_03.UseVisualStyleBackColor = true;
@@ -469,7 +469,7 @@
this.PlcErr_01.AutoSize = true;
this.PlcErr_01.Location = new System.Drawing.Point(96, 20);
this.PlcErr_01.Name = "PlcErr_01";
this.PlcErr_01.Size = new System.Drawing.Size(72, 17);
this.PlcErr_01.Size = new System.Drawing.Size(83, 19);
this.PlcErr_01.TabIndex = 4;
this.PlcErr_01.Text = "PlcErr_04";
this.PlcErr_01.UseVisualStyleBackColor = true;
@@ -501,7 +501,7 @@
this.ErrRT_03.AutoSize = true;
this.ErrRT_03.Location = new System.Drawing.Point(268, 66);
this.ErrRT_03.Name = "ErrRT_03";
this.ErrRT_03.Size = new System.Drawing.Size(67, 17);
this.ErrRT_03.Size = new System.Drawing.Size(76, 19);
this.ErrRT_03.TabIndex = 11;
this.ErrRT_03.Text = "ERR_12";
this.ErrRT_03.UseVisualStyleBackColor = true;
@@ -512,7 +512,7 @@
this.ErrRT_02.AutoSize = true;
this.ErrRT_02.Location = new System.Drawing.Point(268, 43);
this.ErrRT_02.Name = "ErrRT_02";
this.ErrRT_02.Size = new System.Drawing.Size(67, 17);
this.ErrRT_02.Size = new System.Drawing.Size(76, 19);
this.ErrRT_02.TabIndex = 10;
this.ErrRT_02.Text = "ERR_11";
this.ErrRT_02.UseVisualStyleBackColor = true;
@@ -523,7 +523,7 @@
this.CncErr_02.AutoSize = true;
this.CncErr_02.Location = new System.Drawing.Point(181, 43);
this.CncErr_02.Name = "CncErr_02";
this.CncErr_02.Size = new System.Drawing.Size(76, 17);
this.CncErr_02.Size = new System.Drawing.Size(87, 19);
this.CncErr_02.TabIndex = 9;
this.CncErr_02.Text = "CncErr_08";
this.CncErr_02.UseVisualStyleBackColor = true;
@@ -534,7 +534,7 @@
this.CncErr_03.AutoSize = true;
this.CncErr_03.Location = new System.Drawing.Point(181, 66);
this.CncErr_03.Name = "CncErr_03";
this.CncErr_03.Size = new System.Drawing.Size(76, 17);
this.CncErr_03.Size = new System.Drawing.Size(87, 19);
this.CncErr_03.TabIndex = 8;
this.CncErr_03.Text = "CncErr_09";
this.CncErr_03.UseVisualStyleBackColor = true;
@@ -545,7 +545,7 @@
this.CncErr_01.AutoSize = true;
this.CncErr_01.Location = new System.Drawing.Point(181, 20);
this.CncErr_01.Name = "CncErr_01";
this.CncErr_01.Size = new System.Drawing.Size(76, 17);
this.CncErr_01.Size = new System.Drawing.Size(87, 19);
this.CncErr_01.TabIndex = 7;
this.CncErr_01.Text = "CncErr_07";
this.CncErr_01.UseVisualStyleBackColor = true;
@@ -556,7 +556,7 @@
this.SysErr_03.AutoSize = true;
this.SysErr_03.Location = new System.Drawing.Point(7, 66);
this.SysErr_03.Name = "SysErr_03";
this.SysErr_03.Size = new System.Drawing.Size(74, 17);
this.SysErr_03.Size = new System.Drawing.Size(85, 19);
this.SysErr_03.TabIndex = 3;
this.SysErr_03.Text = "SysErr_03";
this.SysErr_03.UseVisualStyleBackColor = true;
@@ -567,7 +567,7 @@
this.ErrRT_01.AutoSize = true;
this.ErrRT_01.Location = new System.Drawing.Point(268, 20);
this.ErrRT_01.Name = "ErrRT_01";
this.ErrRT_01.Size = new System.Drawing.Size(67, 17);
this.ErrRT_01.Size = new System.Drawing.Size(76, 19);
this.ErrRT_01.TabIndex = 2;
this.ErrRT_01.Text = "ERR_10";
this.ErrRT_01.UseVisualStyleBackColor = true;
@@ -578,7 +578,7 @@
this.SysErr_02.AutoSize = true;
this.SysErr_02.Location = new System.Drawing.Point(7, 43);
this.SysErr_02.Name = "SysErr_02";
this.SysErr_02.Size = new System.Drawing.Size(74, 17);
this.SysErr_02.Size = new System.Drawing.Size(85, 19);
this.SysErr_02.TabIndex = 1;
this.SysErr_02.Text = "SysErr_02";
this.SysErr_02.UseVisualStyleBackColor = true;
@@ -589,7 +589,7 @@
this.SysErr_01.AutoSize = true;
this.SysErr_01.Location = new System.Drawing.Point(7, 20);
this.SysErr_01.Name = "SysErr_01";
this.SysErr_01.Size = new System.Drawing.Size(74, 17);
this.SysErr_01.Size = new System.Drawing.Size(85, 19);
this.SysErr_01.TabIndex = 0;
this.SysErr_01.Text = "SysErr_01";
this.SysErr_01.UseVisualStyleBackColor = true;
@@ -646,7 +646,7 @@
this.label37.AutoSize = true;
this.label37.Location = new System.Drawing.Point(10, 187);
this.label37.Name = "label37";
this.label37.Size = new System.Drawing.Size(53, 13);
this.label37.Size = new System.Drawing.Size(55, 15);
this.label37.TabIndex = 42;
this.label37.Text = "Accel Act";
//
@@ -662,7 +662,7 @@
this.label36.AutoSize = true;
this.label36.Location = new System.Drawing.Point(262, 187);
this.label36.Name = "label36";
this.label36.Size = new System.Drawing.Size(40, 13);
this.label36.Size = new System.Drawing.Size(44, 15);
this.label36.TabIndex = 40;
this.label36.Text = "Battery";
//
@@ -678,7 +678,7 @@
this.label11.AutoSize = true;
this.label11.Location = new System.Drawing.Point(127, 187);
this.label11.Name = "label11";
this.label11.Size = new System.Drawing.Size(66, 13);
this.label11.Size = new System.Drawing.Size(75, 15);
this.label11.TabIndex = 38;
this.label11.Text = "Accum Time";
//
@@ -695,7 +695,7 @@
this.label35.AutoSize = true;
this.label35.Location = new System.Drawing.Point(218, 71);
this.label35.Name = "label35";
this.label35.Size = new System.Drawing.Size(49, 13);
this.label35.Size = new System.Drawing.Size(56, 15);
this.label35.TabIndex = 36;
this.label35.Text = "Direction";
//
@@ -704,7 +704,7 @@
this.label34.AutoSize = true;
this.label34.Location = new System.Drawing.Point(12, 72);
this.label34.Name = "label34";
this.label34.Size = new System.Drawing.Size(53, 13);
this.label34.Size = new System.Drawing.Size(58, 15);
this.label34.TabIndex = 35;
this.label34.Text = "Axis Type";
//
@@ -731,7 +731,7 @@
this.label33.AutoSize = true;
this.label33.Location = new System.Drawing.Point(238, 45);
this.label33.Name = "label33";
this.label33.Size = new System.Drawing.Size(44, 13);
this.label33.Size = new System.Drawing.Size(49, 15);
this.label33.TabIndex = 32;
this.label33.Text = "Mast ID";
//
@@ -740,7 +740,7 @@
this.AxIsMaster.AutoSize = true;
this.AxIsMaster.Location = new System.Drawing.Point(178, 44);
this.AxIsMaster.Name = "AxIsMaster";
this.AxIsMaster.Size = new System.Drawing.Size(58, 17);
this.AxIsMaster.Size = new System.Drawing.Size(67, 19);
this.AxIsMaster.TabIndex = 31;
this.AxIsMaster.Text = "Master";
this.AxIsMaster.UseVisualStyleBackColor = true;
@@ -757,7 +757,7 @@
this.label32.AutoSize = true;
this.label32.Location = new System.Drawing.Point(11, 44);
this.label32.Name = "label32";
this.label32.Size = new System.Drawing.Size(55, 13);
this.label32.Size = new System.Drawing.Size(63, 15);
this.label32.TabIndex = 29;
this.label32.Text = "Main Proc";
//
@@ -777,7 +777,7 @@
this.label31.AutoSize = true;
this.label31.Location = new System.Drawing.Point(12, 19);
this.label31.Name = "label31";
this.label31.Size = new System.Drawing.Size(51, 13);
this.label31.Size = new System.Drawing.Size(59, 15);
this.label31.TabIndex = 27;
this.label31.Text = "Axis Num";
//
@@ -800,7 +800,7 @@
this.label5.AutoSize = true;
this.label5.Location = new System.Drawing.Point(12, 124);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(44, 13);
this.label5.Size = new System.Drawing.Size(51, 15);
this.label5.TabIndex = 24;
this.label5.Text = "Position";
//
@@ -817,7 +817,7 @@
this.label4.AutoSize = true;
this.label4.Location = new System.Drawing.Point(12, 103);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(31, 13);
this.label4.Size = new System.Drawing.Size(35, 15);
this.label4.TabIndex = 22;
this.label4.Text = "Load";
//
@@ -826,7 +826,7 @@
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(87, 95);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(0, 13);
this.label3.Size = new System.Drawing.Size(0, 15);
this.label3.TabIndex = 21;
//
// AxLoad
@@ -849,7 +849,7 @@
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(7, 22);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(68, 13);
this.label2.Size = new System.Drawing.Size(81, 15);
this.label2.TabIndex = 38;
this.label2.Text = "Curr Program";
//
@@ -891,7 +891,7 @@
this.label25.AutoSize = true;
this.label25.Location = new System.Drawing.Point(269, 101);
this.label25.Name = "label25";
this.label25.Size = new System.Drawing.Size(37, 13);
this.label25.Size = new System.Drawing.Size(41, 15);
this.label25.TabIndex = 58;
this.label25.Text = "Pz KO";
//
@@ -908,7 +908,7 @@
this.label23.AutoSize = true;
this.label23.Location = new System.Drawing.Point(157, 101);
this.label23.Name = "label23";
this.label23.Size = new System.Drawing.Size(37, 13);
this.label23.Size = new System.Drawing.Size(41, 15);
this.label23.TabIndex = 56;
this.label23.Text = "Pz OK";
//
@@ -925,7 +925,7 @@
this.label21.AutoSize = true;
this.label21.Location = new System.Drawing.Point(33, 101);
this.label21.Name = "label21";
this.label21.Size = new System.Drawing.Size(38, 13);
this.label21.Size = new System.Drawing.Size(41, 15);
this.label21.TabIndex = 54;
this.label21.Text = "Pz Tot";
//
@@ -941,7 +941,7 @@
this.label19.AutoSize = true;
this.label19.Location = new System.Drawing.Point(222, 48);
this.label19.Name = "label19";
this.label19.Size = new System.Drawing.Size(45, 13);
this.label19.Size = new System.Drawing.Size(50, 15);
this.label19.TabIndex = 52;
this.label19.Text = "ID oper.";
//
@@ -957,7 +957,7 @@
this.label17.AutoSize = true;
this.label17.Location = new System.Drawing.Point(253, 22);
this.label17.Name = "label17";
this.label17.Size = new System.Drawing.Size(54, 13);
this.label17.Size = new System.Drawing.Size(62, 15);
this.label17.TabIndex = 50;
this.label17.Text = "Row Num";
//
@@ -983,7 +983,7 @@
this.STATUS_STRB_DW3.Font = new System.Drawing.Font("Microsoft Sans Serif", 11F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.STATUS_STRB_DW3.Location = new System.Drawing.Point(85, 119);
this.STATUS_STRB_DW3.Name = "STATUS_STRB_DW3";
this.STATUS_STRB_DW3.Size = new System.Drawing.Size(291, 24);
this.STATUS_STRB_DW3.Size = new System.Drawing.Size(291, 28);
this.STATUS_STRB_DW3.TabIndex = 59;
//
// label49
@@ -991,7 +991,7 @@
this.label49.AutoSize = true;
this.label49.Location = new System.Drawing.Point(15, 125);
this.label49.Name = "label49";
this.label49.Size = new System.Drawing.Size(67, 13);
this.label49.Size = new System.Drawing.Size(73, 15);
this.label49.TabIndex = 58;
this.label49.Text = "STRB_DW3";
//
@@ -1000,7 +1000,7 @@
this.STATUS_STRB_DW2.Font = new System.Drawing.Font("Microsoft Sans Serif", 11F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.STATUS_STRB_DW2.Location = new System.Drawing.Point(85, 84);
this.STATUS_STRB_DW2.Name = "STATUS_STRB_DW2";
this.STATUS_STRB_DW2.Size = new System.Drawing.Size(291, 24);
this.STATUS_STRB_DW2.Size = new System.Drawing.Size(291, 28);
this.STATUS_STRB_DW2.TabIndex = 57;
//
// label47
@@ -1008,7 +1008,7 @@
this.label47.AutoSize = true;
this.label47.Location = new System.Drawing.Point(15, 90);
this.label47.Name = "label47";
this.label47.Size = new System.Drawing.Size(67, 13);
this.label47.Size = new System.Drawing.Size(73, 15);
this.label47.TabIndex = 56;
this.label47.Text = "STRB_DW2";
//
@@ -1017,7 +1017,7 @@
this.STATUS_STRB_DW1.Font = new System.Drawing.Font("Microsoft Sans Serif", 11F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.STATUS_STRB_DW1.Location = new System.Drawing.Point(85, 49);
this.STATUS_STRB_DW1.Name = "STATUS_STRB_DW1";
this.STATUS_STRB_DW1.Size = new System.Drawing.Size(291, 24);
this.STATUS_STRB_DW1.Size = new System.Drawing.Size(291, 28);
this.STATUS_STRB_DW1.TabIndex = 55;
//
// label18
@@ -1025,7 +1025,7 @@
this.label18.AutoSize = true;
this.label18.Location = new System.Drawing.Point(15, 55);
this.label18.Name = "label18";
this.label18.Size = new System.Drawing.Size(67, 13);
this.label18.Size = new System.Drawing.Size(73, 15);
this.label18.TabIndex = 54;
this.label18.Text = "STRB_DW1";
//
@@ -1034,7 +1034,7 @@
this.STATUS_STRB_DW0.Font = new System.Drawing.Font("Microsoft Sans Serif", 11F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.STATUS_STRB_DW0.Location = new System.Drawing.Point(85, 14);
this.STATUS_STRB_DW0.Name = "STATUS_STRB_DW0";
this.STATUS_STRB_DW0.Size = new System.Drawing.Size(291, 24);
this.STATUS_STRB_DW0.Size = new System.Drawing.Size(291, 28);
this.STATUS_STRB_DW0.TabIndex = 53;
//
// lblPLC_ADP
@@ -1042,7 +1042,7 @@
this.lblPLC_ADP.AutoSize = true;
this.lblPLC_ADP.Location = new System.Drawing.Point(15, 22);
this.lblPLC_ADP.Name = "lblPLC_ADP";
this.lblPLC_ADP.Size = new System.Drawing.Size(67, 13);
this.lblPLC_ADP.Size = new System.Drawing.Size(73, 15);
this.lblPLC_ADP.TabIndex = 52;
this.lblPLC_ADP.Text = "STRB_DW0";
//
@@ -1065,14 +1065,16 @@
this.lblApp.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Bold);
this.lblApp.ForeColor = System.Drawing.SystemColors.ControlText;
this.lblApp.Name = "lblApp";
this.lblApp.Size = new System.Drawing.Size(16, 20);
this.lblApp.Size = new System.Drawing.Size(21, 20);
this.lblApp.Text = "...";
//
// lblStatus
// lblVers
//
this.lblStatus.Name = "lblStatus";
this.lblStatus.Size = new System.Drawing.Size(22, 20);
this.lblStatus.Text = "---";
this.lblVers.Font = new System.Drawing.Font("Segoe UI", 8F);
this.lblVers.ForeColor = System.Drawing.SystemColors.ControlDarkDark;
this.lblVers.Name = "lblVers";
this.lblVers.Size = new System.Drawing.Size(18, 20);
this.lblVers.Text = "...";
//
// MainProgrBar
//
@@ -1080,13 +1082,11 @@
this.MainProgrBar.Size = new System.Drawing.Size(100, 19);
this.MainProgrBar.Step = 1;
//
// lblVers
// lblStatus
//
this.lblVers.Font = new System.Drawing.Font("Segoe UI", 8F);
this.lblVers.ForeColor = System.Drawing.SystemColors.ControlDarkDark;
this.lblVers.Name = "lblVers";
this.lblVers.Size = new System.Drawing.Size(16, 20);
this.lblVers.Text = "...";
this.lblStatus.Name = "lblStatus";
this.lblStatus.Size = new System.Drawing.Size(27, 20);
this.lblStatus.Text = "---";
//
// groupBox13
//
@@ -1126,7 +1126,7 @@
this.label38.AutoSize = true;
this.label38.Location = new System.Drawing.Point(11, 20);
this.label38.Name = "label38";
this.label38.Size = new System.Drawing.Size(54, 13);
this.label38.Size = new System.Drawing.Size(62, 15);
this.label38.TabIndex = 62;
this.label38.Text = "Path Num";
//
@@ -1135,7 +1135,7 @@
this.label29.AutoSize = true;
this.label29.Location = new System.Drawing.Point(12, 133);
this.label29.Name = "label29";
this.label29.Size = new System.Drawing.Size(51, 13);
this.label29.Size = new System.Drawing.Size(56, 15);
this.label29.TabIndex = 33;
this.label29.Text = "Posiz Act";
//
@@ -1152,7 +1152,7 @@
this.label28.AutoSize = true;
this.label28.Location = new System.Drawing.Point(10, 91);
this.label28.Name = "label28";
this.label28.Size = new System.Drawing.Size(64, 13);
this.label28.Size = new System.Drawing.Size(71, 15);
this.label28.TabIndex = 31;
this.label28.Text = "Rapid Over.";
//
@@ -1178,7 +1178,7 @@
this.label27.AutoSize = true;
this.label27.Location = new System.Drawing.Point(10, 66);
this.label27.Name = "label27";
this.label27.Size = new System.Drawing.Size(60, 13);
this.label27.Size = new System.Drawing.Size(66, 15);
this.label27.TabIndex = 28;
this.label27.Text = "Feed Over.";
//
@@ -1204,7 +1204,7 @@
this.label26.AutoSize = true;
this.label26.Location = new System.Drawing.Point(10, 40);
this.label26.Name = "label26";
this.label26.Size = new System.Drawing.Size(49, 13);
this.label26.Size = new System.Drawing.Size(56, 15);
this.label26.TabIndex = 24;
this.label26.Text = "Feedrate";
//
@@ -1225,7 +1225,7 @@
this.sETUPToolStripMenuItem});
this.menuStrip1.Location = new System.Drawing.Point(0, 0);
this.menuStrip1.Name = "menuStrip1";
this.menuStrip1.Size = new System.Drawing.Size(785, 24);
this.menuStrip1.Size = new System.Drawing.Size(785, 28);
this.menuStrip1.TabIndex = 61;
this.menuStrip1.Text = "menuStrip1";
//
@@ -1234,13 +1234,13 @@
this.fILEToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.mLoadAdaptConf});
this.fILEToolStripMenuItem.Name = "fILEToolStripMenuItem";
this.fILEToolStripMenuItem.Size = new System.Drawing.Size(40, 20);
this.fILEToolStripMenuItem.Size = new System.Drawing.Size(47, 24);
this.fILEToolStripMenuItem.Text = "FILE";
//
// mLoadAdaptConf
//
this.mLoadAdaptConf.Name = "mLoadAdaptConf";
this.mLoadAdaptConf.Size = new System.Drawing.Size(194, 22);
this.mLoadAdaptConf.Size = new System.Drawing.Size(232, 26);
this.mLoadAdaptConf.Text = "LOAD ADAPTER CONF";
this.mLoadAdaptConf.Click += new System.EventHandler(this.mLoadAdaptConf_Click);
//
@@ -1250,14 +1250,14 @@
this.mConfGen});
this.sETUPToolStripMenuItem.Name = "sETUPToolStripMenuItem";
this.sETUPToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Alt | System.Windows.Forms.Keys.S)));
this.sETUPToolStripMenuItem.Size = new System.Drawing.Size(53, 20);
this.sETUPToolStripMenuItem.Size = new System.Drawing.Size(63, 24);
this.sETUPToolStripMenuItem.Text = "SETUP";
//
// mConfGen
//
this.mConfGen.Name = "mConfGen";
this.mConfGen.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Alt | System.Windows.Forms.Keys.T)));
this.mConfGen.Size = new System.Drawing.Size(271, 22);
this.mConfGen.Size = new System.Drawing.Size(327, 26);
this.mConfGen.Text = "TEMPLATE CONF GENERATOR";
this.mConfGen.Click += new System.EventHandler(this.mConfGen_Click);
//
@@ -1265,7 +1265,7 @@
//
this.lblCurrAdapt.Dock = System.Windows.Forms.DockStyle.Top;
this.lblCurrAdapt.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblCurrAdapt.Location = new System.Drawing.Point(0, 24);
this.lblCurrAdapt.Location = new System.Drawing.Point(0, 28);
this.lblCurrAdapt.Name = "lblCurrAdapt";
this.lblCurrAdapt.Size = new System.Drawing.Size(785, 26);
this.lblCurrAdapt.TabIndex = 64;
@@ -1278,10 +1278,10 @@
this.tabCtrlMain.Controls.Add(this.tbConf);
this.tabCtrlMain.Controls.Add(this.tpSIM);
this.tabCtrlMain.Dock = System.Windows.Forms.DockStyle.Fill;
this.tabCtrlMain.Location = new System.Drawing.Point(0, 50);
this.tabCtrlMain.Location = new System.Drawing.Point(0, 54);
this.tabCtrlMain.Name = "tabCtrlMain";
this.tabCtrlMain.SelectedIndex = 0;
this.tabCtrlMain.Size = new System.Drawing.Size(785, 666);
this.tabCtrlMain.Size = new System.Drawing.Size(785, 662);
this.tabCtrlMain.TabIndex = 65;
//
// tpStatus
@@ -1295,7 +1295,7 @@
this.tpStatus.Location = new System.Drawing.Point(4, 22);
this.tpStatus.Name = "tpStatus";
this.tpStatus.Padding = new System.Windows.Forms.Padding(3);
this.tpStatus.Size = new System.Drawing.Size(777, 640);
this.tpStatus.Size = new System.Drawing.Size(777, 636);
this.tpStatus.TabIndex = 0;
this.tpStatus.Text = "STATUS";
//
@@ -1304,7 +1304,7 @@
this.lblOutMessage.AutoSize = true;
this.lblOutMessage.Location = new System.Drawing.Point(95, 281);
this.lblOutMessage.Name = "lblOutMessage";
this.lblOutMessage.Size = new System.Drawing.Size(16, 13);
this.lblOutMessage.Size = new System.Drawing.Size(16, 15);
this.lblOutMessage.TabIndex = 60;
this.lblOutMessage.Text = "...";
//
@@ -1313,7 +1313,7 @@
this.label53.AutoSize = true;
this.label53.Location = new System.Drawing.Point(18, 281);
this.label53.Name = "label53";
this.label53.Size = new System.Drawing.Size(54, 13);
this.label53.Size = new System.Drawing.Size(61, 15);
this.label53.TabIndex = 59;
this.label53.Text = "Data Mon";
//
@@ -1339,7 +1339,7 @@
this.STATUS_ACK_DW3.Font = new System.Drawing.Font("Microsoft Sans Serif", 11F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.STATUS_ACK_DW3.Location = new System.Drawing.Point(85, 118);
this.STATUS_ACK_DW3.Name = "STATUS_ACK_DW3";
this.STATUS_ACK_DW3.Size = new System.Drawing.Size(293, 24);
this.STATUS_ACK_DW3.Size = new System.Drawing.Size(293, 28);
this.STATUS_ACK_DW3.TabIndex = 59;
//
// label52
@@ -1347,7 +1347,7 @@
this.label52.AutoSize = true;
this.label52.Location = new System.Drawing.Point(15, 126);
this.label52.Name = "label52";
this.label52.Size = new System.Drawing.Size(59, 13);
this.label52.Size = new System.Drawing.Size(64, 15);
this.label52.TabIndex = 58;
this.label52.Text = "ACK_DW3";
//
@@ -1356,7 +1356,7 @@
this.STATUS_ACK_DW2.Font = new System.Drawing.Font("Microsoft Sans Serif", 11F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.STATUS_ACK_DW2.Location = new System.Drawing.Point(85, 83);
this.STATUS_ACK_DW2.Name = "STATUS_ACK_DW2";
this.STATUS_ACK_DW2.Size = new System.Drawing.Size(293, 24);
this.STATUS_ACK_DW2.Size = new System.Drawing.Size(293, 28);
this.STATUS_ACK_DW2.TabIndex = 57;
//
// label51
@@ -1364,7 +1364,7 @@
this.label51.AutoSize = true;
this.label51.Location = new System.Drawing.Point(15, 91);
this.label51.Name = "label51";
this.label51.Size = new System.Drawing.Size(59, 13);
this.label51.Size = new System.Drawing.Size(64, 15);
this.label51.TabIndex = 56;
this.label51.Text = "ACK_DW2";
//
@@ -1373,7 +1373,7 @@
this.STATUS_ACK_DW1.Font = new System.Drawing.Font("Microsoft Sans Serif", 11F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.STATUS_ACK_DW1.Location = new System.Drawing.Point(85, 48);
this.STATUS_ACK_DW1.Name = "STATUS_ACK_DW1";
this.STATUS_ACK_DW1.Size = new System.Drawing.Size(293, 24);
this.STATUS_ACK_DW1.Size = new System.Drawing.Size(293, 28);
this.STATUS_ACK_DW1.TabIndex = 55;
//
// label50
@@ -1381,7 +1381,7 @@
this.label50.AutoSize = true;
this.label50.Location = new System.Drawing.Point(15, 56);
this.label50.Name = "label50";
this.label50.Size = new System.Drawing.Size(59, 13);
this.label50.Size = new System.Drawing.Size(64, 15);
this.label50.TabIndex = 54;
this.label50.Text = "ACK_DW1";
//
@@ -1390,7 +1390,7 @@
this.STATUS_ACK_DW0.Font = new System.Drawing.Font("Microsoft Sans Serif", 11F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.STATUS_ACK_DW0.Location = new System.Drawing.Point(85, 15);
this.STATUS_ACK_DW0.Name = "STATUS_ACK_DW0";
this.STATUS_ACK_DW0.Size = new System.Drawing.Size(293, 24);
this.STATUS_ACK_DW0.Size = new System.Drawing.Size(293, 28);
this.STATUS_ACK_DW0.TabIndex = 53;
//
// label48
@@ -1398,7 +1398,7 @@
this.label48.AutoSize = true;
this.label48.Location = new System.Drawing.Point(15, 19);
this.label48.Name = "label48";
this.label48.Size = new System.Drawing.Size(59, 13);
this.label48.Size = new System.Drawing.Size(64, 15);
this.label48.TabIndex = 52;
this.label48.Text = "ACK_DW0";
//
@@ -1460,7 +1460,7 @@
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(18, 20);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(26, 13);
this.label1.Size = new System.Drawing.Size(29, 15);
this.label1.TabIndex = 0;
this.label1.Text = "Port";
//
@@ -1551,7 +1551,7 @@
this.label45.AutoSize = true;
this.label45.Location = new System.Drawing.Point(4, 122);
this.label45.Name = "label45";
this.label45.Size = new System.Drawing.Size(38, 13);
this.label45.Size = new System.Drawing.Size(43, 15);
this.label45.TabIndex = 79;
this.label45.Text = "Speed";
//
@@ -1568,7 +1568,7 @@
this.label46.AutoSize = true;
this.label46.Location = new System.Drawing.Point(4, 101);
this.label46.Name = "label46";
this.label46.Size = new System.Drawing.Size(31, 13);
this.label46.Size = new System.Drawing.Size(35, 15);
this.label46.TabIndex = 77;
this.label46.Text = "Load";
//
@@ -1592,7 +1592,7 @@
this.label43.AutoSize = true;
this.label43.Location = new System.Drawing.Point(6, 75);
this.label43.Name = "label43";
this.label43.Size = new System.Drawing.Size(44, 13);
this.label43.Size = new System.Drawing.Size(49, 15);
this.label43.TabIndex = 74;
this.label43.Text = "VitaRes";
//
@@ -1608,7 +1608,7 @@
this.label44.AutoSize = true;
this.label44.Location = new System.Drawing.Point(120, 75);
this.label44.Name = "label44";
this.label44.Size = new System.Drawing.Size(52, 13);
this.label44.Size = new System.Drawing.Size(57, 15);
this.label44.TabIndex = 72;
this.label44.Text = "Acc Time";
//
@@ -1624,7 +1624,7 @@
this.label40.AutoSize = true;
this.label40.Location = new System.Drawing.Point(6, 49);
this.label40.Name = "label40";
this.label40.Size = new System.Drawing.Size(42, 13);
this.label40.Size = new System.Drawing.Size(46, 15);
this.label40.TabIndex = 70;
this.label40.Text = "Tool ID";
//
@@ -1640,7 +1640,7 @@
this.label41.AutoSize = true;
this.label41.Location = new System.Drawing.Point(255, 49);
this.label41.Name = "label41";
this.label41.Size = new System.Drawing.Size(37, 13);
this.label41.Size = new System.Drawing.Size(41, 15);
this.label41.TabIndex = 68;
this.label41.Text = "Status";
//
@@ -1656,7 +1656,7 @@
this.label42.AutoSize = true;
this.label42.Location = new System.Drawing.Point(120, 49);
this.label42.Name = "label42";
this.label42.Size = new System.Drawing.Size(44, 13);
this.label42.Size = new System.Drawing.Size(51, 15);
this.label42.TabIndex = 66;
this.label42.Text = "NumCU";
//
@@ -1676,7 +1676,7 @@
this.label39.AutoSize = true;
this.label39.Location = new System.Drawing.Point(4, 23);
this.label39.Name = "label39";
this.label39.Size = new System.Drawing.Size(60, 13);
this.label39.Size = new System.Drawing.Size(69, 15);
this.label39.TabIndex = 64;
this.label39.Text = "Num UnOp";
//
@@ -1699,7 +1699,7 @@
this.ready.Checked = true;
this.ready.Location = new System.Drawing.Point(114, 16);
this.ready.Name = "ready";
this.ready.Size = new System.Drawing.Size(56, 17);
this.ready.Size = new System.Drawing.Size(63, 19);
this.ready.TabIndex = 9;
this.ready.TabStop = true;
this.ready.Text = "Ready";
@@ -1710,7 +1710,7 @@
this.feedhold.AutoSize = true;
this.feedhold.Location = new System.Drawing.Point(253, 16);
this.feedhold.Name = "feedhold";
this.feedhold.Size = new System.Drawing.Size(74, 17);
this.feedhold.Size = new System.Drawing.Size(85, 19);
this.feedhold.TabIndex = 8;
this.feedhold.Text = "Feed Hold";
this.feedhold.UseVisualStyleBackColor = true;
@@ -1720,7 +1720,7 @@
this.stopped.AutoSize = true;
this.stopped.Location = new System.Drawing.Point(180, 16);
this.stopped.Name = "stopped";
this.stopped.Size = new System.Drawing.Size(65, 17);
this.stopped.Size = new System.Drawing.Size(74, 19);
this.stopped.TabIndex = 7;
this.stopped.Text = "Stopped";
this.stopped.UseVisualStyleBackColor = true;
@@ -1730,7 +1730,7 @@
this.running.AutoSize = true;
this.running.Location = new System.Drawing.Point(36, 16);
this.running.Name = "running";
this.running.Size = new System.Drawing.Size(65, 17);
this.running.Size = new System.Drawing.Size(75, 19);
this.running.TabIndex = 6;
this.running.Text = "Running";
this.running.UseVisualStyleBackColor = true;
@@ -1753,7 +1753,7 @@
this.edit.AutoSize = true;
this.edit.Location = new System.Drawing.Point(299, 16);
this.edit.Name = "edit";
this.edit.Size = new System.Drawing.Size(43, 17);
this.edit.Size = new System.Drawing.Size(49, 19);
this.edit.TabIndex = 9;
this.edit.Text = "Edit";
this.edit.UseVisualStyleBackColor = true;
@@ -1763,7 +1763,7 @@
this.mdi.AutoSize = true;
this.mdi.Location = new System.Drawing.Point(180, 15);
this.mdi.Name = "mdi";
this.mdi.Size = new System.Drawing.Size(113, 17);
this.mdi.Size = new System.Drawing.Size(129, 19);
this.mdi.TabIndex = 8;
this.mdi.Text = "Manual Data Input";
this.mdi.UseVisualStyleBackColor = true;
@@ -1774,7 +1774,7 @@
this.manual.Checked = true;
this.manual.Location = new System.Drawing.Point(114, 15);
this.manual.Name = "manual";
this.manual.Size = new System.Drawing.Size(60, 17);
this.manual.Size = new System.Drawing.Size(70, 19);
this.manual.TabIndex = 7;
this.manual.TabStop = true;
this.manual.Text = "Manual";
@@ -1785,7 +1785,7 @@
this.automatic.AutoSize = true;
this.automatic.Location = new System.Drawing.Point(36, 16);
this.automatic.Name = "automatic";
this.automatic.Size = new System.Drawing.Size(72, 17);
this.automatic.Size = new System.Drawing.Size(82, 19);
this.automatic.TabIndex = 6;
this.automatic.Text = "Automatic";
this.automatic.UseVisualStyleBackColor = true;
@@ -1815,7 +1815,7 @@
this.D1_UUID.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.D1_UUID.Location = new System.Drawing.Point(233, 54);
this.D1_UUID.Name = "D1_UUID";
this.D1_UUID.Size = new System.Drawing.Size(19, 13);
this.D1_UUID.Size = new System.Drawing.Size(23, 17);
this.D1_UUID.TabIndex = 66;
this.D1_UUID.Text = "...";
//
@@ -1825,7 +1825,7 @@
this.D1_ID.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.D1_ID.Location = new System.Drawing.Point(54, 53);
this.D1_ID.Name = "D1_ID";
this.D1_ID.Size = new System.Drawing.Size(19, 13);
this.D1_ID.Size = new System.Drawing.Size(23, 17);
this.D1_ID.TabIndex = 65;
this.D1_ID.Text = "...";
//
@@ -1835,7 +1835,7 @@
this.D1_NAME.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.D1_NAME.Location = new System.Drawing.Point(54, 20);
this.D1_NAME.Name = "D1_NAME";
this.D1_NAME.Size = new System.Drawing.Size(19, 13);
this.D1_NAME.Size = new System.Drawing.Size(23, 17);
this.D1_NAME.TabIndex = 64;
this.D1_NAME.Text = "...";
//
@@ -1844,7 +1844,7 @@
this.lblAT.AutoSize = true;
this.lblAT.Location = new System.Drawing.Point(189, 20);
this.lblAT.Name = "lblAT";
this.lblAT.Size = new System.Drawing.Size(43, 13);
this.lblAT.Size = new System.Drawing.Size(47, 15);
this.lblAT.TabIndex = 63;
this.lblAT.Text = "AccMin";
//
@@ -1860,7 +1860,7 @@
this.label30.AutoSize = true;
this.label30.Location = new System.Drawing.Point(288, 20);
this.label30.Name = "label30";
this.label30.Size = new System.Drawing.Size(36, 13);
this.label30.Size = new System.Drawing.Size(41, 15);
this.label30.TabIndex = 61;
this.label30.Text = "power";
//
@@ -1876,7 +1876,7 @@
this.label16.AutoSize = true;
this.label16.Location = new System.Drawing.Point(193, 53);
this.label16.Name = "label16";
this.label16.Size = new System.Drawing.Size(34, 13);
this.label16.Size = new System.Drawing.Size(37, 15);
this.label16.TabIndex = 59;
this.label16.Text = "UUID";
//
@@ -1885,7 +1885,7 @@
this.label15.AutoSize = true;
this.label15.Location = new System.Drawing.Point(10, 53);
this.label15.Name = "label15";
this.label15.Size = new System.Drawing.Size(18, 13);
this.label15.Size = new System.Drawing.Size(19, 15);
this.label15.TabIndex = 57;
this.label15.Text = "ID";
//
@@ -1894,7 +1894,7 @@
this.label14.AutoSize = true;
this.label14.Location = new System.Drawing.Point(10, 20);
this.label14.Name = "label14";
this.label14.Size = new System.Drawing.Size(35, 13);
this.label14.Size = new System.Drawing.Size(41, 15);
this.label14.TabIndex = 54;
this.label14.Text = "Nome";
//
@@ -1914,7 +1914,7 @@
this.enableDataSim.Location = new System.Drawing.Point(112, 9);
this.enableDataSim.Name = "enableDataSim";
this.enableDataSim.RightToLeft = System.Windows.Forms.RightToLeft.Yes;
this.enableDataSim.Size = new System.Drawing.Size(59, 17);
this.enableDataSim.Size = new System.Drawing.Size(68, 19);
this.enableDataSim.TabIndex = 55;
this.enableDataSim.Text = "Enable";
this.enableDataSim.UseVisualStyleBackColor = true;
@@ -1935,7 +1935,7 @@
this.estop.Location = new System.Drawing.Point(59, 9);
this.estop.Name = "estop";
this.estop.RightToLeft = System.Windows.Forms.RightToLeft.Yes;
this.estop.Size = new System.Drawing.Size(104, 17);
this.estop.Size = new System.Drawing.Size(119, 19);
this.estop.TabIndex = 55;
this.estop.Text = "Emergency Stop";
this.estop.UseVisualStyleBackColor = true;
@@ -1963,7 +1963,7 @@
this.lblCodaT.AutoSize = true;
this.lblCodaT.Location = new System.Drawing.Point(117, 74);
this.lblCodaT.Name = "lblCodaT";
this.lblCodaT.Size = new System.Drawing.Size(22, 13);
this.lblCodaT.Size = new System.Drawing.Size(22, 15);
this.lblCodaT.TabIndex = 60;
this.lblCodaT.Text = "[...]";
//
@@ -1981,7 +1981,7 @@
this.label24.AutoSize = true;
this.label24.Location = new System.Drawing.Point(9, 74);
this.label24.Name = "label24";
this.label24.Size = new System.Drawing.Size(33, 13);
this.label24.Size = new System.Drawing.Size(35, 15);
this.label24.TabIndex = 58;
this.label24.Text = "AddT";
//
@@ -1990,7 +1990,7 @@
this.lblCodaS.AutoSize = true;
this.lblCodaS.Location = new System.Drawing.Point(118, 48);
this.lblCodaS.Name = "lblCodaS";
this.lblCodaS.Size = new System.Drawing.Size(22, 13);
this.lblCodaS.Size = new System.Drawing.Size(22, 15);
this.lblCodaS.TabIndex = 57;
this.lblCodaS.Text = "[...]";
//
@@ -2008,7 +2008,7 @@
this.label22.AutoSize = true;
this.label22.Location = new System.Drawing.Point(10, 48);
this.label22.Name = "label22";
this.label22.Size = new System.Drawing.Size(33, 13);
this.label22.Size = new System.Drawing.Size(36, 15);
this.label22.TabIndex = 55;
this.label22.Text = "AddS";
//
@@ -2017,7 +2017,7 @@
this.lblCodaM.AutoSize = true;
this.lblCodaM.Location = new System.Drawing.Point(118, 22);
this.lblCodaM.Name = "lblCodaM";
this.lblCodaM.Size = new System.Drawing.Size(22, 13);
this.lblCodaM.Size = new System.Drawing.Size(22, 15);
this.lblCodaM.TabIndex = 54;
this.lblCodaM.Text = "[...]";
//
@@ -2035,7 +2035,7 @@
this.label20.AutoSize = true;
this.label20.Location = new System.Drawing.Point(10, 22);
this.label20.Name = "label20";
this.label20.Size = new System.Drawing.Size(35, 13);
this.label20.Size = new System.Drawing.Size(39, 15);
this.label20.TabIndex = 52;
this.label20.Text = "AddM";
//
@@ -2048,8 +2048,9 @@
//
// trayMenu
//
this.trayMenu.ImageScalingSize = new System.Drawing.Size(20, 20);
this.trayMenu.Name = "trayMenu";
this.trayMenu.Size = new System.Drawing.Size(61, 4);
this.trayMenu.Size = new System.Drawing.Size(67, 4);
this.trayMenu.ItemClicked += new System.Windows.Forms.ToolStripItemClickedEventHandler(this.trayMenu_ItemClicked);
//
// MainForm
+56 -18
View File
@@ -49,7 +49,7 @@ namespace MTC_Adapter
/// <summary>
/// timer base in avvio
/// </summary>
protected int startTimerMs;
protected int startTimerMs = 250;
/// <summary>
/// ultimo tentativo riavvio...
/// </summary>
@@ -149,8 +149,7 @@ namespace MTC_Adapter
var sentinalRule = new LoggingRule("*", LogLevel.Trace, sentinalTarget);
LogManager.Configuration.AddTarget("sentinal", sentinalTarget);
LogManager.Configuration.LoggingRules.Add(sentinalRule);
#endif
LogManager.ReconfigExistingLoggers();
@@ -166,8 +165,11 @@ namespace MTC_Adapter
if (utils.CRB("autoLoadConf"))
{
loadXmlFile(defConfFilePath);
lg.Info("XML LOADED");
loadPersistLayer(defPersLayerFile);
lg.Info("PersLayerFile READ");
agObj.loadPersData();
lg.Info("PersLayerFile LOADED");
}
else
{
@@ -184,6 +186,8 @@ namespace MTC_Adapter
displayTaskAndWait("Running");
createTrayMenu();
displayTaskAndWait("Tray Menu OK");
// avvio minimizzato se richiesto
if (utils.CRB("startMinimized"))
{
@@ -192,7 +196,10 @@ namespace MTC_Adapter
{
WindowState = FormWindowState.Minimized;
}
displayTaskAndWait("Minimized");
}
displayTaskAndWait("Main Form OK");
}
/// <summary>
/// Verifica finale a fine show...
@@ -207,6 +214,7 @@ namespace MTC_Adapter
// controllo e mando a tray...
sendToTray();
}
displayTaskAndWait("Main Form SHOWN");
}
/// <summary>
/// crea menù tray x applicazione
@@ -269,6 +277,7 @@ namespace MTC_Adapter
{
notifyIcon1.Visible = false;
}
}
/// <summary>
/// Gestisce "andata nel tray" della form
@@ -445,19 +454,19 @@ namespace MTC_Adapter
// fix componenti vettoriali PATH, UNOP, ASSI...
for (int i = 0; i < adpConf.nPath; i++)
{
cbPathSel.Items.Insert(i, adpConf.Path[i].alias);
cbPathSel.Items.Insert(i, adpConf.Path[i].ident);
}
if (adpConf.nPath > 0) cbPathSel.SelectedIndex = 0;
for (int i = 0; i < adpConf.nUnOp; i++)
{
cbUnOpSel.Items.Insert(i, adpConf.UnOp[i].alias);
cbUnOpSel.Items.Insert(i, adpConf.UnOp[i].ident);
}
if (adpConf.nUnOp > 0) cbUnOpSel.SelectedIndex = 0;
for (int i = 0; i < adpConf.nAxis; i++)
{
cbAxNum.Items.Insert(i, adpConf.Axis[i].alias);
cbAxNum.Items.Insert(i, adpConf.Axis[i].ident);
}
if (adpConf.nAxis > 0) cbAxNum.SelectedIndex = 0;
@@ -473,6 +482,8 @@ namespace MTC_Adapter
{
avviaAdapter();
agObj.loadPersData();
// salvo che ho avviato adapter
lg.Info("Completato LOAD Adapter");
}
public void avviaAdapter()
@@ -500,7 +511,6 @@ namespace MTC_Adapter
normCount = utils.CRI("normCount");
slowCount = utils.CRI("slowCount");
alarmSyncCount = utils.CRI("alarmSyncCount");
displayTaskAndWait("Adapter Running...");
}
@@ -512,6 +522,8 @@ namespace MTC_Adapter
private void stop_Click(object sender, EventArgs e)
{
fermaAdapter(false);
// salvo che ho fermato adapter
lg.Info("UNLOAD Adapter");
}
/// <summary>
/// Ferma l'adapter
@@ -524,17 +536,18 @@ namespace MTC_Adapter
private void gather_Tick(object sender, EventArgs e)
{
//lg.Info("timer called");
// eseguo cicli attivi SOLO se adapter è in EFFETTIVO running...
if (agObj.adpRunning)
{
// inizio a riportare che sto eseguendo..
MainProgrBar.PerformStep();
advProgBar();
if (agObj.connectionOk)
{
#if false
// eseguo eventuali simulazioni x dati/flags SE RICHIESTO
simulateData();
simulateData();
#endif
// check esecuzione FastTask
checkFastTask();
@@ -585,6 +598,7 @@ namespace MTC_Adapter
private void checkAlarmSync()
{
alarmSyncCount--;
if (alarmSyncCount <= 0)
{
@@ -592,7 +606,7 @@ namespace MTC_Adapter
// avvio fase raccolta dati e invio con adapter
agObj.gaterAndSend(gatherCycle.VLF);
MainProgrBar.PerformStep();
advProgBar();
}
}
private void checkSlowTask()
@@ -604,7 +618,7 @@ namespace MTC_Adapter
// avvio fase raccolta dati e invio con adapter
agObj.gaterAndSend(gatherCycle.LF);
MainProgrBar.PerformStep();
advProgBar();
// refresh stringhe code M/S/T
refreshCodeMST();
@@ -645,6 +659,7 @@ namespace MTC_Adapter
private void checkNormTask()
{
// decremento...
normCount--;
// se il counter è a zero eseguo...
@@ -654,8 +669,20 @@ namespace MTC_Adapter
// avvio fase raccolta dati e invio con adapter
agObj.gaterAndSend(gatherCycle.MF);
advProgBar();
}
}
/// <summary>
/// Avanza la barra di stato...
/// </summary>
public void advProgBar()
{
try
{
MainProgrBar.PerformStep();
}
catch
{ }
}
private void checkFastTask()
@@ -671,16 +698,18 @@ namespace MTC_Adapter
agObj.gaterAndSend(gatherCycle.HF);
refreshVisualStrobes();
MainProgrBar.PerformStep();
advProgBar();
}
}
private void message_Leave(object sender, EventArgs e)
{
#if false
agObj.mMessage.Code = messageCode.Text;
agObj.mMessage.Value = messageText.Text;
agObj.mMessage.ForceChanged();
agObj.mAdapter.SendChanged();
#endif
}
// apro eseguibile dump
@@ -1154,13 +1183,21 @@ namespace MTC_Adapter
/// <param name="filePath"></param>
public void savePersistLayer(string filePath)
{
try
// se HO dei dati...
if (agObj.persistenceLayer != null)
{
utils.WritePlain(agObj.persistenceLayer, filePath);
try
{
utils.WritePlain(agObj.persistenceLayer, filePath);
}
catch (Exception exc)
{
lg.Error(string.Format("Errore salvataggio file{0}{1}", Environment.NewLine, exc));
}
}
catch (Exception exc)
else
{
lg.Error(exc, "Errore salvataggio file");
lg.Info("persistenceLayer null, non salvato...");
}
}
/// <summary>
@@ -1600,5 +1637,6 @@ namespace MTC_Adapter
agObj.tryDisconnect();
}
}
}
}
@@ -377,7 +377,7 @@
000376|PLC|FAULT|[COD 002107] - 530 PULSANTIERA ESTERNA ABILITATA
000377|PLC|FAULT|[COD 002108] - 504 CAMBIO UTENSILE INTERROTTO
000378|PLC|FAULT|[COD 002109] - 363 MONTANTE CENTRALE ALTO
000379|PLC|FAULT|[COD 002110] - =--- PREALLARME TERMICO TORQUE A
000379|PLC|FAULT|[COD 002110] - --- PREALLARME TERMICO TORQUE A
000380|PLC|FAULT|[COD 002111] - 498 CARICO MASSIMO SUL MANDRINO SUPERATO SOGLIA S1
000381|PLC|FAULT|[COD 002112] - --- PREALLARME TERMICO TORQUE C
000382|PLC|FAULT|[COD 002113] - 432 UTENSILE NON SGANCIATO
@@ -431,7 +431,7 @@
000430|PLC|FAULT|[COD 002161] - 289 ATTREZZAGGIO CAMBIO UTENSILE 2 IN CORSO
000431|PLC|FAULT|[COD 002162] - 584 PORTA DI SICUREZZA MAGAZZINO DISCO 2 NON CHIUSA
000432|PLC|FAULT|[COD 002163] - 514 PROTEZIONE MAGAZZINO DISCO 2 NON IN POSIZIONE
000433|PLC|FAULT|[COD 002164] -
000433|PLC|FAULT|[COD 002164] - ...
000434|PLC|FAULT|[COD 002165] - 550 GRUPPO DI FORATURA NON IN POSIZIONE
000435|PLC|FAULT|[COD 002166] - ...
000436|PLC|FAULT|[COD 002167] - ...
Binary file not shown.

Before

Width:  |  Height:  |  Size: 148 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

@@ -1,276 +1,421 @@
1|PLC|FAULT|[1] MANDRINO 1 NON BLOCCATO
2|PLC|FAULT|[2] MANDRINO 2 NON BLOCCATO
3|PLC|FAULT|[3] MANDRINO SUPPLEMENTARE NON BLOCCATO
4|PLC|FAULT|[4] ZONA DI COLLISIONE CON CAMBIO UTENSILE ESTERNO
5|PLC|FAULT|[5] ZONA DI COLLISIONE CON CAMBIO UTENSILE LINEARE
6|PLC|FAULT|[6] GRUPPO ASSI NON VALIDO
7|PLC|FAULT|[7] INVERTER 1 NON OK
8|PLC|FAULT|[8] INVERTER 2 NON OK
9|PLC|FAULT|[9] INVERTER MANDRINO SUPPLEMENTARE NON OK
10|PLC|FAULT|[10] SAVE ENERGY ATTIVO
11|PLC|FAULT|[11] [WD]SUPERATO NUMERO PEZZI MASSIMO CARICABILE SU TRANSFER
12|PLC|FAULT|[12] VERIFICA CONTATTORI NON OK
13|PLC|FAULT|[13] TIMEOUT COMUNICAZIONE XILOG
14|PLC|WARNING|[14] INTERVENTO MAGNETOTERMICI
15|PLC|FAULT|[15] PORTE PROTEZIONE APERTE
16|PLC|FAULT|[16] TAPPETO CONVOGLIA TRUCIOLI NON IN POSIZIONE
17|PLC|FAULT|[17] COLLISIONE RILEVATA DAL SIMULATORE
18|PLC|FAULT|[18]
19|PLC|FAULT|[19] FORATRICE NON IN POSIZIONE
20|PLC|WARNING|[20] STOP MACCHINA DA CODICI M SUPPLEMENTARI
21|PLC|WARNING|[21] M00 ATTIVO: START CICLO
22|PLC|WARNING|[22] BATTERIA SCARICA ENCODER ASSI YASKAWA
23|PLC|FAULT|[23] AZIONAMENTI ASSI XYZ... NON OK
24|PLC|FAULT|[24] AZIONAMENTI ASSI ROTATIVI NON OK
25|PLC|FAULT|[25] CNC NON OK
26|PLC|FAULT|[26] PRESSOSTATO ARIA INTERVENUTO
27|PLC|FAULT|[27] BATTERIA CNC NON CARICA
28|PLC|FAULT|[28] ERRORE CANOPEN RING 0
29|PLC|FAULT|[29] ERRORE CANOPEN RING 1
30|PLC|WARNING|[30] ABILITAZIONE BL/SBL UTENSILE MANDRINO 1
31|PLC|WARNING|[31] ABILITAZIONE BL/SBL UTENSILE MANDRINO 2
32|PLC|WARNING|[32] ABILITAZIONE BL/SBL UTENSILE MANDRINO SUPPLEMENTARE
33|PLC|FAULT|[33] CICLO ETICHETTATURA IN CORSO
34|PLC|FAULT|[34] ETICHETTATRICE NON PRONTA
35|PLC|FAULT|[35] ETICHETTATRICE NON IN POSIZIONE
36|PLC|FAULT|[36] ERRORE ETICHETTATRICE
37|PLC|FAULT|[37] SONDA TERMICA/VENTOLA MANDRINO 1
38|PLC|FAULT|[38] SONDA TERMICA/VENTOLA MANDRINO 2
39|PLC|FAULT|[39] SONDA TERMICA/VENTOLA MANDRINO SUPPLEMENTARE
40|PLC|FAULT|[40] INTERVENTO MAGNETOTERMICO GRUPPO LAMA
41|PLC|FAULT|[41] RICARICARE POMPA LUBRIFICAZIONE
42|PLC|FAULT|[42] LUBRIFICAZIONE ASSI NON OK
43|PLC|WARNING|[43] LUBRIFICAZIONE ASSI IN CORSO
44|PLC|WARNING|[44] RICHIESTA VUOTO/ATTREZZATURA
45|PLC|FAULT|[45] EMERGENZA CAUSA VUOTO ZONA 1
46|PLC|FAULT|[46] EMERGENZA CAUSA VUOTO ZONA 2
47|PLC|FAULT|[47] ASSI IN FINE CORSA
48|PLC|FAULT|[48] CUFFIA ESTERNA NON IN POSIZIONE
49|PLC|FAULT|[49] CUFFIA INTERNA NON IN POSIZIONE
50|PLC|FAULT|[50] CUFFIA PULIZIA PIANO NON IN POSIZIONE
51|PLC|FAULT|[51] EMERGENZA CAUSA VUOTO ZONA 3
52|PLC|FAULT|[52] EMERGENZA CAUSA VUOTO ZONA 4
53|PLC|WARNING|[53] ESEGUIRE RIFERIMENTO ASSI
54|PLC|FAULT|[54] ESEGUIRE RIFERIMENTO MAGAZZINO UTENSILE 1
55|PLC|FAULT|[55] ESEGUIRE RIFERIMENTO MAGAZZINO UTENSILE 2
56|PLC|FAULT|[56] ESEGUIRE RIFERIMENTO MAGAZZINO UTENSILE MANDRINO SUPPLEMENTARE
57|PLC|FAULT|[57] ESEGUIRE RIFERIMENTO MAGAZZINO ESTERNO 1
58|PLC|FAULT|[58] ESEGUIRE RIFERIMENTO NAVETTA HS
59|PLC|FAULT|[59] ESEGUIRE RIFERIMENTO PINZE ROBOT CELLA WD
60|PLC|FAULT|[60] CONVOGLIATORE TRUCIOLI NON OK
61|PLC|WARNING|[61] SERBATOIO LUBRIFICAZIONE CONVOGLIATORE TRUCIOLI VUOTO
62|PLC|FAULT|[62] ASSE X IN FINE CORSA
63|PLC|FAULT|[63] ASSE Y IN FINE CORSA
64|PLC|FAULT|[64] ASSE Z IN FINE CORSA
65|PLC|FAULT|[65] PALPATORE SYNCRO NON IN POSIZIONE
66|PLC|WARNING|[66] ALLINEAMENTO ASSI GANTRY IN CORSO
67|PLC|FAULT|[67] ASSE B IN FINE CORSA
68|PLC|FAULT|[68] ASSE C IN FINE CORSA
69|PLC|FAULT|[69] ASSE Y NON IN POSIZIONE
70|PLC|FAULT|[70] ESEGUIRE RIFERIMENTO PALPATORE SYNCRO
71|PLC|FAULT|[71] PERNO BLOCCAGGIO TAVOLO ELEVATORE NON IN POSIZIONE
72|PLC|FAULT|[72] FOTOCELLULA PRESENZA UTENSILE
73|PLC|FAULT|[73] MANDRINO 1 NON OK
74|PLC|FAULT|[74] MANDRINO 2 NON OK
75|PLC|FAULT|[75] MANDRINO SUPPLEMENTARE NON OK
76|PLC|FAULT|[76] FOTOCELLULA PRESENZA UTENSILE (CATENA)
77|PLC|FAULT|[77] ALLARME SENSORE ROTAZIONE MANDRINO 1
78|PLC|FAULT|[78] ALLARME SENSORE ROTAZIONE MANDRINO 2
79|PLC|FAULT|[79] ALLARME SENSORE ROTAZIONE MANDRINO SUPPLEMENTARE
80|PLC|FAULT|[80] CAMBIO UTENSILE TESTA 1(ONBOARD) NON IN POSIZIONE
81|PLC|FAULT|[81] CAMBIO UTENSILE MANDRINO SUPPLEMENTARE (ONBOARD) NON IN POSIZIONE
82|PLC|FAULT|[82] CAMBIO UTENSILE LINEARE NON IN POSIZIONE
83|PLC|FAULT|[83] CAMBIO UTENSILE HS NON IN POSIZIONE
84|PLC|FAULT|[84] [TM] NAVETTA TOOL MANAGEMENT NON IN POSIZIONE
85|PLC|FAULT|[85] [TM] LETTORE CHIP TOOL MANAGMENT NON IN POSIZIONE
86|PLC|FAULT|[86] [TM] LIBERARE PINZA DI CARICO TOOL MANAGMENT
87|PLC|FAULT|[87] [TM] COLLISIONE CON TOOL MANAGMENT
88|PLC|FAULT|[88] [TM] CARICARE UTENSILE SULLA PINZA DI CARICO DEL TOOL MANAGMENT
89|PLC|FAULT|[89] BANDELLA NON IN POSIZIONE
90|PLC|FAULT|[90] PANNELLO PRELEVATO FUORI ALLINEAMENTO
91|PLC|FAULT|[91] SCARICATORE NON IN POSIZIONE
92|PLC|FAULT|[92] SPONDE/BATTUTE DI SCARICO NON IN POSIZIONE
93|PLC|FAULT|[93] ZONA DI SCARICO OCCUPATA
94|PLC|FAULT|[94] VERIFICARE DIMENSIONI PILA
95|PLC|FAULT|[95] CARICARE NUOVA PILA
96|PLC|FAULT|[96] CARICATORE NON IN POSIZIONE
97|PLC|FAULT|[97] TAVOLO ELEVATORE NON OK
98|PLC|FAULT|[98] PANNELLO NON PRELEVATO DA TAVOLO ELEVATORE
99|PLC|FAULT|[99] FOTOCELLULA RIFERIMENTO PANNELLO NON OK
100|PLC|FAULT|[100] ALLARME CELLA WD
101|PLC|FAULT|[101] REFRIGERANTE MANDRINO 1 NON OK
102|PLC|FAULT|[102] REFRIGERANTE MANDRINO 2 NON OK
103|PLC|FAULT|[103] INVERTER NASTRO DI SCARICO NON OK
104|PLC|FAULT|[104] ARRESTO OPERATIVO: RESETTARE LE FOTOCELLULE DI SICUREZZA
105|PLC|WARNING|[105] C.UTENSILE LINEARE IN CORSO: ABBASSARE GLI INNALZATORI E RESETTARE LE FOTOCELLULE DI SICUREZZA
106|PLC|FAULT|[106] CARICO PANNELLO NON AMMESSO
107|PLC|FAULT|[107] BYPASS COLLISIONI ATTIVO
108|PLC|FAULT|[108] SPORTELLO CAMBIO UTENSILE LINEARE DESTRO NON IN POSIZIONE
109|PLC|FAULT|[109] VERIFICA FUNZIONAMENTO SICUREZZE
110|PLC|FAULT|[110] RESETTARE LE FOTOCELLULE DI SICUREZZA
111|PLC|FAULT|[111] INSERIMENTO UTENSILE NON OK
112|PLC|FAULT|[112] GUASTO MICRO CONTROLLO PEDANE
113|PLC|FAULT|[113] INSERIMENTO UTENSILE IN NAVETTA HS NON OK
114|PLC|WARNING|[114] TABELLA NON AGGIORNATA
115|PLC|FAULT|[115] MANDRINO 1 NON SBLOCCATO
116|PLC|FAULT|[116] MANDRINO SUPPLEMENTARE NON SBLOCCATO
117|PLC|FAULT|[117] CONTROLLARE CICLO CHIUSURA BORDO
118|PLC|WARNING|[118] PM: SETUP NON POSSIBILE ZONA 3 [Vuoto ON/Teste DW]
119|PLC|WARNING|[119] PM: SETUP NON POSSIBILE ZONA 4 [Vuoto ON/Teste DW]
120|PLC|WARNING|[120] UTENSILE SPECIALE: OPERAZIONE NON AMMESSA
121|PLC|FAULT|[121] ERRORE CICLO CHIUSURA BORDO
122|PLC|FAULT|[122] MAGAZZINO UTENSILE ESTERNO 1 NON IN POSIZIONE
123|PLC|FAULT|[123] SPORTELLO MAGAZZINO ESTERNO NON IN POSIZIONE
124|PLC|WARNING|[124] ERRATA PROGRAMMAZIONE
125|PLC|WARNING|[125] ERRORE UTENSILE TESTA 1
126|PLC|WARNING|[126] ERRORE UTENSILE TESTA 2
127|PLC|FAULT|[127] SPORTELLO CAMBIO UTENSILE LINEARE SINISTRO NON IN POSIZIONE
128|PLC|FAULT|[128] TIME OUT PIGNA MOBILE
129|PLC|WARNING|[129] CAMBIO MODALITA' MACCHINA (M103)
130|PLC|FAULT|[130] PORTE ARMADIO ELETTRICO APERTE
131|PLC|WARNING|[131] ESEGUIRE MANUTENZIONE CONDIZIONATORE ARMADIO ELETTRICO
132|PLC|FAULT|[132] AGGREGATO PRESSATORE/CONVOGLIATORE TRUCIOLI NON OK
133|PLC|FAULT|[133] SERBATOIO LUBROREFRIGERATORE UTENSILE VUOTO
134|PLC|WARNING|[134] BATTERIA SCARICA TASTATORE RADIO
135|PLC|FAULT|[135] RILEVATORE SPESSORE PEZZO NON IN POSIZIONE
136|PLC|FAULT|[136] CICLO TASTATURA NON OK
137|PLC|FAULT|[137] BATTUTE DI RIFERIMENTO ZONA 1 NON OK
138|PLC|FAULT|[138] BATTUTE DI RIFERIMENTO ZONA 2 NON OK
139|PLC|FAULT|[139] ASSI PRISMA BC NON IN POSIZIONE
140|PLC|FAULT|[140] AZIONAMENTI ASSI PRISMA BC NON OK
141|PLC|FAULT|[141] TASTATORE RADIO NON OK
142|PLC|FAULT|[142]
143|PLC|FAULT|[143]
144|PLC|FAULT|[144]
145|PLC|WARNING|[145] RIAGGANCIO MANDRINO IN CORSO
146|PLC|WARNING|[146] RIAGGANCIO MANDRINO FALLITO
147|PLC|WARNING|[147] RIAGGANCIO MANDRINO AVVENUTO
148|PLC|FAULT|[148] INTERVENTO FUNE DI SICUREZZA
149|PLC|FAULT|[149] INTERVENTO OVERSPEED ASSI
150|PLC|FAULT|[150] INTERVENTO BUMPERS
151|PLC|WARNING|[151] MACCHINA SPENTA
152|PLC|FAULT|[152] EMERGENZA PREMUTA
153|PLC|WARNING|[153] PM: SETUP NON POSSIBILE ZONA 1 [VUOTO ON / TESTE DW]
154|PLC|WARNING|[154] PM: SETUP NON POSSIBILE ZONA 2 [VUOTO ON / TESTE DW]
155|PLC|WARNING|[155] BARRA MOBILE CENTRALE 1 NON IN POSIZIONE
156|PLC|WARNING|[156] BARRA MOBILE CENTRALE 2 NON IN POSIZIONE
157|PLC|WARNING|[157] PM: COLLISIONE BATTUTE CON SUPPORTI VENTOSE / MORSETTI
158|PLC|WARNING|[158] CUFFIA MANDRINO SUPPLEMENTARE NON IN POSIZIONE
159|PLC|WARNING|[159] TESTA GRUPPO MANDRINO SUPPLEMENTARE NON IN POSIZIONE
160|PLC|WARNING|[160] TESTA GRUPPO LAMA NON IN POSIZIONE
161|PLC|WARNING|[161] CICLO DI CARICO IN CORSO
162|PLC|WARNING|[162] CICLO DI SCARICO IN CORSO
163|PLC|WARNING|[163] BATTUTE DI CARICO NON IN POSIZIONE ZONA 1
164|PLC|WARNING|[164] ATTESA ROBOT IN POSIZIONE
165|PLC|WARNING|[165] INVERTER GUASTO POMPA VUOTO 1 (MASTER)
166|PLC|WARNING|[166] INVERTER GUASTO POMPA VUOTO 2 (SLAVE)
167|PLC|WARNING|[167] BATTUTE DI CARICO NON IN POSIZIONE ZONA 2
168|PLC|WARNING|[168] SALITA CUFFIA DA OPERATORE
169|PLC|WARNING|[169] TRAVERSA 1 NON IN POSIZIONE
170|PLC|WARNING|[170] TRAVERSA 2 NON IN POSIZIONE
171|PLC|WARNING|[171] TRAVERSA 3 NON IN POSIZIONE
172|PLC|WARNING|[172] TRAVERSA 4 NON IN POSIZIONE
173|PLC|WARNING|[173] TRAVERSA 5 NON IN POSIZIONE
174|PLC|WARNING|[174] TRAVERSA 6 NON IN POSIZIONE
175|PLC|WARNING|[175] TRAVERSA 7 NON IN POSIZIONE
176|PLC|WARNING|[176] TRAVERSA 8 NON IN POSIZIONE
177|PLC|WARNING|[177] TRAVERSA 9 NON IN POSIZIONE
178|PLC|WARNING|[178] TRAVERSA 10 NON IN POSIZIONE
179|PLC|WARNING|[179] TRAVERSA 11 NON IN POSIZIONE
180|PLC|WARNING|[180] TRAVERSA 12 NON IN POSIZIONE
181|PLC|WARNING|[181] SOSTITUZIONE VENTOSE IN CORSO AREA 1
182|PLC|WARNING|[182] SOSTITUZIONE VENTOSE IN CORSO AREA 2
183|PLC|FAULT|[183] BATTUTE DI RIFERIMENTO ZONA 3 NON OK
184|PLC|FAULT|[184] BATTUTE DI RIFERIMENTO ZONA 4 NON OK
185|PLC|FAULT|[185] [BRC] GR5: GRUPPO FUSI ORIZZONTALI NON IN POSIZIONE (fori spine)
186|PLC|FAULT|[186] [BRC] GR6: GRUPPO FRESA VERTICALE NON IN POSIZIONE
187|PLC|FAULT|[187] [BRC] GR7: GRUPPO FRESA ORIZZONTALE NON IN POSIZIONE
188|PLC|FAULT|[188] [BRC] GR8: GRUPPO LAMA NON IN POSIZIONE
189|PLC|FAULT|[189] [BRC] ATTESA INNESTO PER ROTAZIONE GRUPPO LAMA
190|PLC|FAULT|[190] SELETTORI CONTROSAGOMA NON OK [AREA UNICA]
191|PLC|FAULT|[191] BATTUTE DI RIFERIMENTO BARRA 1 NON OK
192|PLC|FAULT|[192] BATTUTE DI RIFERIMENTO BARRA 2 NON OK
193|PLC|FAULT|[193] BATTUTE DI RIFERIMENTO BARRA 3 NON OK
194|PLC|FAULT|[194] BATTUTE DI RIFERIMENTO BARRA 4 NON OK
195|PLC|FAULT|[195] BATTUTE DI RIFERIMENTO BARRA 5 NON OK
196|PLC|FAULT|[196] BATTUTE DI RIFERIMENTO BARRA 6 NON OK
197|PLC|FAULT|[197] BATTUTE DI RIFERIMENTO BARRA 7 NON OK
198|PLC|FAULT|[198] BATTUTE DI RIFERIMENTO BARRA 8 NON OK
199|PLC|FAULT|[199] BATTUTE DI RIFERIMENTO BARRA 9 NON OK
200|PLC|FAULT|[200] BATTUTE DI RIFERIMENTO BARRA 10 NON OK
201|PLC|FAULT|[201] BATTUTE DI RIFERIMENTO BARRA 11 NON OK
202|PLC|FAULT|[202] BATTUTE DI RIFERIMENTO BARRA 12 NON OK
203|PLC|FAULT|[203] BATTUTE DI RIFERIMENTO BARRA FISSA SX NON OK
204|PLC|FAULT|[204] BATTUTE DI RIFERIMENTO BARRA FISSA DX NON OK
205|PLC|FAULT|[205] BASI NON BLOCCATE ZONA 1
206|PLC|FAULT|[206] BASI NON BLOCCATE ZONA 2
207|PLC|FAULT|[207] BASI NON BLOCCATE ZONA 3
208|PLC|FAULT|[208] BASI NON BLOCCATE ZONA 4
209|PLC|WARNING|[209] SOSTITUZIONE VENTOSE IN CORSO AREA 3
210|PLC|WARNING|[210] SOSTITUZIONE VENTOSE IN CORSO AREA 4
211|PLC|FAULT|[211] [BORDATORE POWER] ATTESA GRUPPO A BORDARE ALTO
212|PLC|FAULT|[212] [BORDATORE POWER] ATTESA GRUPPO A BORDARE BASSO
213|PLC|FAULT|[213] [BORDATORE POWER] ATTESA GRUPPO A BORDARE POSIZ. CAMBIO RULLO
214|PLC|FAULT|[214] [BORDATORE POWER] ATTESA PIANO CARICAMENTO BORDI ALTO
215|PLC|FAULT|[215] [BORDATORE POWER] ATTESA PIANO CARICAMENTO BORDI BASSO
216|PLC|FAULT|[216] [BORDATORE POWER] MANCATA LETTURA BORDO GIUNZIONE
217|PLC|FAULT|[217] [BORDATORE POWER] ERRORE BORDO SU FOTOCELLULA DI CARICO
218|PLC|FAULT|[218] VASCA COLLA NON IN TEMPERATURA
219|PLC|FAULT|[219] [BORDATORE POWER] ASSENZA BORDO IN MULTIROTOLO
220|PLC|FAULT|[220] [BORDATORE POWER] ATTESA CICLO CARICO COLLA DA PREFUSORE
221|PLC|FAULT|[221] [BORDATORE POWER] MANCATO TAGLIO TRANCIA MAGAZZINO BORDI
222|PLC|FAULT|[222] [BORDATORE POWER] ATTESA CARICO COLLA DA PREFUSORE
223|PLC|FAULT|[223] [BORDATORE POWER] ANOMALIA SENSORI CILINDRO TESTA A BORDARE
224|PLC|FAULT|[224] SENSORE TESTA A BORDARE IN COLLISIONE
225|PLC|FAULT|[225] [BORDATORE POWER] TIMEOUT INTESTATURA BORDO TESTA A BORDARE
226|PLC|FAULT|[226] INTERVENTO TERMICI VASCA COLLA
227|PLC|FAULT|[227] INTERVENTO TERMICI PREFUSORE
228|PLC|FAULT|[228] INTERVENTO TERMICI LAMPADE ONDE CORTE
229|PLC|FAULT|[229] ESEGUIRE RIFERIMENTO MOT. ALTEZZA BORDO TESTA B.
230|PLC|FAULT|[230] ESEGUIRE RIFERIMENTO MOT. ALTEZZA BORDO MAGAZZINO B.
231|PLC|FAULT|[231] ESEGUIRE RIFERIMENTO MOT. CAMBIO RULLO PRESSIONE
232|PLC|FAULT|[232] TIMEOUT SENSORE CHIUSURA CILINDRO PREFUSORE
233|PLC|FAULT|[233] ESEGUIRE TARATURA TRAVERSE/VENTOSE
234|PLC|FAULT|[234] VENTOSE NON BLOCCATE AREA 1
235|PLC|FAULT|[235] VENTOSE NON BLOCCATE AREA 2
236|PLC|WARNING|[236] ATTESA SBLOCCO VENTOSA
237|PLC|WARNING|[237] ATTESA BLOCCO VENTOSA
238|PLC|WARNING|[238] RIMUOVERE VENTOSA: START CICLO
239|PLC|WARNING|[239] INSERIRE VENTOSA: START CICLO
240|PLC|FAULT|[240] ANOMALIA FOTOCELLULA MAGAZZINO BORDI
241|PLC|WARNING|[241] BARRA 1
242|PLC|WARNING|[242] BARRA 2
243|PLC|WARNING|[243] BARRA 3
244|PLC|WARNING|[244] BARRA 4
245|PLC|WARNING|[245] BARRA 5
246|PLC|WARNING|[246] BARRA 6
247|PLC|WARNING|[247] BARRA 7
248|PLC|WARNING|[248] BARRA 8
249|PLC|WARNING|[249] BARRA 9
250|PLC|WARNING|[250] BARRA 10
251|PLC|WARNING|[251] BARRA 11
252|PLC|WARNING|[252] BARRA 12
253|PLC|WARNING|[253] RIMUOVERE/INSERIRE VENTOSA COME DA GRAFICA SU AREA 1: START CICLO
254|PLC|WARNING|[254] RIMUOVERE/INSERIRE VENTOSA COME DA GRAFICA SU AREA 2: START CICLO
255|PLC|FAULT|[255] PORTE PROTEZIONE SBLOCCATE
256|PLC|FAULT|[256] ERRORE MODULO ZERO SPEED MANDRINO
257|PLC|FAULT|[257] INTESTATORE NON IN POSIZIONE
258|PLC|FAULT|[258] INTESTATORE 92 VUOTO
259|PLC|FAULT|[259] INTESTATORE 93 VUOTO
260|PLC|FAULT|[260] LIVELLO COLLA BASSO B.BASIC
261|PLC|FAULT|[261] [WD]EMERGENZA TRANSFER PREMUTA
262|PLC|FAULT|[262] [WD]INTERVENTO MAGNETOTERMICI TRANSFER
263|PLC|FAULT|[263] [WD]PORTE ARMADIO ELETTRICO TRANSFER APERTE
264|PLC|FAULT|[264] [WD]SVUOTARE TRANSFER
265|PLC|FAULT|[265] [WD]PEZZO IN ZONA DI SCARICO
266|PLC|FAULT|[266] [WD]ATTESA ROBOT 1 IN POSIZIONE
267|PLC|FAULT|[267] [WD]ATTESA ROBOT 2 IN POSIZIONE
268|PLC|FAULT|[268] [WD]SVUOTARE RULLIERE
269|PLC|FAULT|[269] [WD]DIMENSIONI PEZZO NON OK
270|PLC|FAULT|[270] [WD]SVUOTARE PIANO MACCHINA E PINZE ROBOT
271|PLC|FAULT|[271] [WD]PINZA ROBOT 1 NON IN POSIZIONE
272|PLC|FAULT|[272] [WD]PINZA ROBOT 2 NON IN POSIZIONE
273|PLC|FAULT|[273] MORSETTI ZONA 1 ALTI PNEUMATICAMENTE
274|PLC|FAULT|[274] MORSETTI ZONA 2 ALTI PNEUMATICAMENTE
275|PLC|FAULT|[275] EMERGENZA CAUSA MORSETTI ZONA 1
276|PLC|FAULT|[276] EMERGENZA CAUSA MORSETTI ZONA 2
# Commenti con "#", elenco tipo COD_NUM|GRUPPO|LEVEL|DESCRIZIONE completa
000001|PLC|FAULT|[1] MANDRINO 1 NON BLOCCATO
000002|PLC|FAULT|[2] MANDRINO 2 NON BLOCCATO
000003|PLC|FAULT|[3] MANDRINO SUPPLEMENTARE NON BLOCCATO
000004|PLC|FAULT|[4] ZONA DI COLLISIONE CON CAMBIO UTENSILE ESTERNO
000005|PLC|FAULT|[5] ZONA DI COLLISIONE CON CAMBIO UTENSILE LINEARE
000006|PLC|FAULT|[6] GRUPPO ASSI NON VALIDO
000007|PLC|FAULT|[7] INVERTER 1 NON OK
000008|PLC|FAULT|[8] INVERTER 2 NON OK
000009|PLC|FAULT|[9] INVERTER MANDRINO SUPPLEMENTARE NON OK
0000010|PLC|FAULT|[10] SAVE ENERGY ATTIVO
0000011|PLC|FAULT|[11] B,[WD] SUPERATO NUMERO PEZZI MASSIMO CARICABILE SU TRANSFER
0000012|PLC|FAULT|[12] VERIFICA CONTATTORI NON OK
0000013|PLC|FAULT|[13] TIMEOUT COMUNICAZIONE XILOG
0000014|PLC|WARNING|[14] INTERVENTO MAGNETOTERMICI
0000015|PLC|FAULT|[15] PORTE PROTEZIONE APERTE
0000016|PLC|FAULT|[16] TAPPETO CONVOGLIA TRUCIOLI NON IN POSIZIONE
0000017|PLC|FAULT|[17] COLLISIONE RILEVATA DAL SIMULATORE
0000018|PLC|FAULT|[18] BUMPER MOBILE NON IN POSIZIONE
0000019|PLC|FAULT|[19] FORATRICE NON IN POSIZIONE
0000020|PLC|WARNING|[20] STOP MACCHINA DA CODICI M SUPPLEMENTARI
0000021|PLC|WARNING|[21] M00 ATTIVO: START CICLO
0000022|PLC|WARNING|[22] BATTERIA SCARICA ENCODER ASSI YASKAWA
0000023|PLC|FAULT|[23] AZIONAMENTI ASSI XYZ... NON OK
0000024|PLC|FAULT|[24] AZIONAMENTI ASSI ROTATIVI NON OK
0000025|PLC|FAULT|[25] CNC NON OK
0000026|PLC|FAULT|[26] PRESSOSTATO ARIA INTERVENUTO
0000027|PLC|FAULT|[27] BATTERIA CNC NON CARICA
0000028|PLC|FAULT|[28] ERRORE CANOPEN RING 0
0000029|PLC|FAULT|[29] ERRORE CANOPEN RING 1
0000030|PLC|WARNING|[30] ABILITAZIONE BL/SBL UTENSILE MANDRINO 1
0000031|PLC|WARNING|[31] ABILITAZIONE BL/SBL UTENSILE MANDRINO 2
0000032|PLC|WARNING|[32] ABILITAZIONE BL/SBL UTENSILE MANDRINO SUPPLEMENTARE
0000033|PLC|WARNING|[33] CICLO ETICHETTATURA IN CORSO
0000034|PLC|FAULT|[34] ETICHETTATRICE NON PRONTA
0000035|PLC|FAULT|[35] ETICHETTATRICE NON IN POSIZIONE
0000036|PLC|FAULT|[36] ERRORE ETICHETTATRICE
0000037|PLC|FAULT|[37] SONDA TERMICA/VENTOLA MANDRINO 1
0000038|PLC|FAULT|[38] SONDA TERMICA/VENTOLA MANDRINO 2
0000039|PLC|FAULT|[39] SONDA TERMICA/VENTOLA MANDRINO SUPPLEMENTARE
0000040|PLC|FAULT|[40] INTERVENTO MAGNETOTERMICO GRUPPO LAMA
0000041|PLC|FAULT|[41] RICARICARE POMPA LUBRIFICAZIONE
0000042|PLC|FAULT|[42] LUBRIFICAZIONE ASSI NON OK
0000043|PLC|WARNING|[43] LUBRIFICAZIONE ASSI IN CORSO
0000044|PLC|WARNING|[44] RICHIESTA VUOTO/ATTREZZATURA
0000045|PLC|FAULT|[45] EMERGENZA CAUSA VUOTO ZONA 1
0000046|PLC|FAULT|[46] EMERGENZA CAUSA VUOTO ZONA 2
0000047|PLC|FAULT|[47] ASSI IN FINE CORSA
0000048|PLC|FAULT|[48] CUFFIA ESTERNA NON IN POSIZIONE
0000049|PLC|FAULT|[49] CUFFIA INTERNA NON IN POSIZIONE
0000050|PLC|FAULT|[50] CUFFIA PULIZIA PIANO NON IN POSIZIONE
0000051|PLC|FAULT|[51] EMERGENZA CAUSA VUOTO ZONA 3
0000052|PLC|FAULT|[52] EMERGENZA CAUSA VUOTO ZONA 4
0000053|PLC|WARNING|[53] ESEGUIRE RIFERIMENTO ASSI
0000054|PLC|FAULT|[54] ESEGUIRE RIFERIMENTO MAGAZZINO UTENSILE 1
0000055|PLC|FAULT|[55] ESEGUIRE RIFERIMENTO MAGAZZINO UTENSILE 2
0000056|PLC|FAULT|[56] ESEGUIRE RIFERIMENTO MAGAZZINO UTENSILE MANDRINO SUPPLEMENTARE
0000057|PLC|FAULT|[57] ESEGUIRE RIFERIMENTO MAGAZZINO ESTERNO 1
0000058|PLC|FAULT|[58] ESEGUIRE RIFERIMENTO NAVETTA HS
0000059|PLC|FAULT|[59] ESEGUIRE RIFERIMENTO PINZE ROBOT CELLA WD
0000060|PLC|FAULT|[60] CONVOGLIATORE TRUCIOLI NON OK
0000061|PLC|WARNING|[61] SERBATOIO LUBRIFICAZIONE CONVOGLIATORE TRUCIOLI VUOTO
0000062|PLC|FAULT|[62] ASSE X IN FINE CORSA
0000063|PLC|FAULT|[63] ASSE Y IN FINE CORSA
0000064|PLC|FAULT|[64] ASSE Z IN FINE CORSA
0000065|PLC|FAULT|[65] PALPATORE SYNCRO NON IN POSIZIONE
0000066|PLC|WARNING|[66] ALLINEAMENTO ASSI GANTRY IN CORSO
0000067|PLC|FAULT|[67] ASSE B IN FINE CORSA
0000068|PLC|FAULT|[68] ASSE C IN FINE CORSA
0000069|PLC|FAULT|[69] ASSE Y NON IN POSIZIONE
0000070|PLC|FAULT|[70] ESEGUIRE RIFERIMENTO PALPATORE SYNCRO
0000071|PLC|FAULT|[71] PERNO BLOCCAGGIO TAVOLO ELEVATORE NON IN POSIZIONE
0000072|PLC|FAULT|[72] FOTOCELLULA PRESENZA UTENSILE
0000073|PLC|FAULT|[73] MANDRINO 1 NON OK
0000074|PLC|FAULT|[74] MANDRINO 2 NON OK
0000075|PLC|FAULT|[75] MANDRINO SUPPLEMENTARE NON OK
0000076|PLC|FAULT|[76] FOTOCELLULA PRESENZA UTENSILE (CATENA)
0000077|PLC|FAULT|[77] ALLARME SENSORE ROTAZIONE MANDRINO 1
0000078|PLC|FAULT|[78] ALLARME SENSORE ROTAZIONE MANDRINO 2
0000079|PLC|FAULT|[79] ALLARME SENSORE ROTAZIONE MANDRINO SUPPLEMENTARE
0000080|PLC|FAULT|[80] CAMBIO UTENSILE TESTA 1(ONBOARD) NON IN POSIZIONE
0000081|PLC|FAULT|[81] CAMBIO UTENSILE MANDRINO SUPPLEMENTARE (ONBOARD) NON IN POSIZIONE
0000082|PLC|FAULT|[82] CAMBIO UTENSILE LINEARE NON IN POSIZIONE
0000083|PLC|FAULT|[83] CAMBIO UTENSILE HS NON IN POSIZIONE
0000084|PLC|FAULT|[84] [TM] NAVETTA TOOL MANAGEMENT NON IN POSIZIONE
0000085|PLC|FAULT|[85] [TM] LETTORE CHIP TOOL MANAGMENT NON IN POSIZIONE
0000086|PLC|FAULT|[86] [TM] LIBERARE PINZA DI CARICO TOOL MANAGMENT
0000087|PLC|FAULT|[87] [TM] COLLISIONE CON TOOL MANAGMENT
0000088|PLC|FAULT|[88] [TM] CARICARE UTENSILE SULLA PINZA DI CARICO DEL TOOL MANAGMENT
0000089|PLC|FAULT|[89] BANDELLA NON IN POSIZIONE
0000090|PLC|FAULT|[90] PANNELLO PRELEVATO FUORI ALLINEAMENTO
0000091|PLC|FAULT|[91] SCARICATORE NON IN POSIZIONE
0000092|PLC|FAULT|[92] SPONDE/BATTUTE DI SCARICO NON IN POSIZIONE
0000093|PLC|FAULT|[93] ZONA DI SCARICO OCCUPATA
0000094|PLC|FAULT|[94] VERIFICARE DIMENSIONI PILA
0000095|PLC|FAULT|[95] CARICARE NUOVA PILA
0000096|PLC|FAULT|[96] CARICATORE NON IN POSIZIONE
0000097|PLC|FAULT|[97] TAVOLO ELEVATORE NON OK
0000098|PLC|FAULT|[98] PANNELLO NON PRELEVATO DA TAVOLO ELEVATORE
0000099|PLC|FAULT|[99] FOTOCELLULA RIFERIMENTO PANNELLO NON OK
0000100|PLC|FAULT|[100] ALLARME CELLA WD
0000101|PLC|FAULT|[101] REFRIGERANTE MANDRINO 1 NON OK
0000102|PLC|FAULT|[102] REFRIGERANTE MANDRINO 2 NON OK
0000103|PLC|FAULT|[103] INVERTER NASTRO DI SCARICO NON OK
0000104|PLC|FAULT|[104] ARRESTO OPERATIVO: RESETTARE LE FOTOCELLULE DI SICUREZZA
0000105|PLC|WARNING|[105] C.UTENSILE LINEARE IN CORSO: ABBASSARE GLI INNALZATORI E RESETTARE LE FOTOCELLULE DI SICUREZZA
0000106|PLC|FAULT|[106] CARICO PANNELLO NON AMMESSO
0000107|PLC|FAULT|[107] BYPASS COLLISIONI ATTIVO
0000108|PLC|FAULT|[108] SPORTELLO CAMBIO UTENSILE LINEARE DESTRO NON IN POSIZIONE
0000109|PLC|FAULT|[109] VERIFICA FUNZIONAMENTO SICUREZZE
0000110|PLC|FAULT|[110] RESETTARE LE FOTOCELLULE DI SICUREZZA
0000111|PLC|FAULT|[111] INSERIMENTO UTENSILE NON OK
0000112|PLC|FAULT|[112] GUASTO MICRO CONTROLLO PEDANE
0000113|PLC|FAULT|[113] INSERIMENTO UTENSILE IN NAVETTA HS NON OK
0000114|PLC|WARNING|[114] TABELLA NON AGGIORNATA
0000115|PLC|FAULT|[115] MANDRINO 1 NON SBLOCCATO
0000116|PLC|FAULT|[116] MANDRINO SUPPLEMENTARE NON SBLOCCATO
0000117|PLC|FAULT|[117] CONTROLLARE CICLO CHIUSURA BORDO
0000118|PLC|WARNING|[118] PM: SETUP NON POSSIBILE ZONA 3 [Vuoto ON/Teste DW]
0000119|PLC|WARNING|[119] PM: SETUP NON POSSIBILE ZONA 4 [Vuoto ON/Teste DW]
0000120|PLC|WARNING|[120] UTENSILE SPECIALE: OPERAZIONE NON AMMESSA
0000121|PLC|FAULT|[121] ERRORE CICLO CHIUSURA BORDO
0000122|PLC|FAULT|[122] MAGAZZINO UTENSILE ESTERNO 1 NON IN POSIZIONE
0000123|PLC|FAULT|[123] SPORTELLO MAGAZZINO ESTERNO NON IN POSIZIONE
0000124|PLC|WARNING|[124] ERRATA PROGRAMMAZIONE
0000125|PLC|WARNING|[125] ERRORE UTENSILE TESTA 1
0000126|PLC|WARNING|[126] ERRORE UTENSILE TESTA 2
0000127|PLC|FAULT|[127] SPORTELLO CAMBIO UTENSILE LINEARE SINISTRO NON IN POSIZIONE
0000128|PLC|FAULT|[128] TIME OUT PIGNA MOBILE
0000129|PLC|WARNING|[129] CAMBIO MODALITA' MACCHINA (M103)
0000130|PLC|FAULT|[130] PORTE ARMADIO ELETTRICO APERTE
0000131|PLC|WARNING|[131] ESEGUIRE MANUTENZIONE CONDIZIONATORE ARMADIO ELETTRICO
0000132|PLC|FAULT|[132] AGGREGATO PRESSATORE/CONVOGLIATORE TRUCIOLI NON OK
0000133|PLC|FAULT|[133] SERBATOIO LUBROREFRIGERATORE UTENSILE VUOTO
0000134|PLC|WARNING|[134] BATTERIA SCARICA TASTATORE RADIO
0000135|PLC|FAULT|[135] RILEVATORE SPESSORE PEZZO NON IN POSIZIONE
0000136|PLC|FAULT|[136] CICLO TASTATURA NON OK
0000137|PLC|FAULT|[137] BATTUTE DI RIFERIMENTO ZONA 1 NON OK
0000138|PLC|FAULT|[138] BATTUTE DI RIFERIMENTO ZONA 2 NON OK
0000139|PLC|FAULT|[139] ASSI PRISMA BC NON IN POSIZIONE
0000140|PLC|FAULT|[140] AZIONAMENTI ASSI PRISMA BC NON OK
0000141|PLC|FAULT|[141] TASTATORE RADIO NON OK
0000142|PLC|FAULT|[142] AVVICINATORI NON IN POSIZIONE
0000143|PLC|FAULT|[143] AVVICINAMENTO PANNELLO NON AVVENUTO
0000144|PLC|FAULT|[144] PRESA PANNELLO NON OK
0000145|PLC|WARNING|[145] RIAGGANCIO MANDRINO IN CORSO
0000146|PLC|WARNING|[146] RIAGGANCIO MANDRINO FALLITO
0000147|PLC|WARNING|[147] RIAGGANCIO MANDRINO AVVENUTO
0000148|PLC|FAULT|[148] INTERVENTO FUNE DI SICUREZZA
0000149|PLC|FAULT|[149] INTERVENTO OVERSPEED ASSI
0000150|PLC|FAULT|[150] INTERVENTO BUMPERS
0000151|PLC|WARNING|[151] MACCHINA SPENTA
0000152|PLC|FAULT|[152] EMERGENZA PREMUTA
0000153|PLC|WARNING|[153] PM: SETUP NON POSSIBILE ZONA 1 [VUOTO ON / TESTE DW]
0000154|PLC|WARNING|[154] PM: SETUP NON POSSIBILE ZONA 2 [VUOTO ON / TESTE DW]
0000155|PLC|WARNING|[155] BARRA MOBILE CENTRALE 1 NON IN POSIZIONE
0000156|PLC|WARNING|[156] BARRA MOBILE CENTRALE 2 NON IN POSIZIONE
0000157|PLC|WARNING|[157] PM: COLLISIONE BATTUTE CON SUPPORTI VENTOSE / MORSETTI
0000158|PLC|WARNING|[158] CUFFIA MANDRINO SUPPLEMENTARE NON IN POSIZIONE
0000159|PLC|WARNING|[159] TESTA GRUPPO MANDRINO SUPPLEMENTARE NON IN POSIZIONE
0000160|PLC|WARNING|[160] TESTA GRUPPO LAMA NON IN POSIZIONE
0000161|PLC|WARNING|[161] CICLO DI CARICO IN CORSO
0000162|PLC|WARNING|[162] CICLO DI SCARICO IN CORSO
0000163|PLC|WARNING|[163] BATTUTE DI CARICO NON IN POSIZIONE ZONA 1
0000164|PLC|WARNING|[164] ATTESA ROBOT IN POSIZIONE
0000165|PLC|WARNING|[165] INVERTER GUASTO POMPA VUOTO 1 (MASTER)
0000166|PLC|WARNING|[166] INVERTER GUASTO POMPA VUOTO 2 (SLAVE)
0000167|PLC|WARNING|[167] BATTUTE DI CARICO NON IN POSIZIONE ZONA 2
0000168|PLC|WARNING|[168] SALITA CUFFIA DA OPERATORE
0000169|PLC|WARNING|[169] TRAVERSA 1 NON IN POSIZIONE
0000170|PLC|WARNING|[170] TRAVERSA 2 NON IN POSIZIONE
0000171|PLC|WARNING|[171] TRAVERSA 3 NON IN POSIZIONE
0000172|PLC|WARNING|[172] TRAVERSA 4 NON IN POSIZIONE
0000173|PLC|WARNING|[173] TRAVERSA 5 NON IN POSIZIONE
0000174|PLC|WARNING|[174] TRAVERSA 6 NON IN POSIZIONE
0000175|PLC|WARNING|[175] TRAVERSA 7 NON IN POSIZIONE
0000176|PLC|WARNING|[176] TRAVERSA 8 NON IN POSIZIONE
0000177|PLC|WARNING|[177] TRAVERSA 9 NON IN POSIZIONE
0000178|PLC|WARNING|[178] TRAVERSA 10 NON IN POSIZIONE
0000179|PLC|WARNING|[179] TRAVERSA 11 NON IN POSIZIONE
0000180|PLC|WARNING|[180] TRAVERSA 12 NON IN POSIZIONE
0000181|PLC|WARNING|[181] SOSTITUZIONE VENTOSE IN CORSO AREA 1
0000182|PLC|WARNING|[182] SOSTITUZIONE VENTOSE IN CORSO AREA 2
0000183|PLC|FAULT|[183] BATTUTE DI RIFERIMENTO ZONA 3 NON OK
0000184|PLC|FAULT|[184] BATTUTE DI RIFERIMENTO ZONA 4 NON OK
0000185|PLC|FAULT|[185] [BRC] GR5: GRUPPO FUSI ORIZZONTALI NON IN POSIZIONE (fori spine)
0000186|PLC|FAULT|[186] [BRC] GR6: GRUPPO FRESA VERTICALE NON IN POSIZIONE
0000187|PLC|FAULT|[187] [BRC] GR7: GRUPPO FRESA ORIZZONTALE NON IN POSIZIONE
0000188|PLC|FAULT|[188] [BRC] GR8: GRUPPO LAMA NON IN POSIZIONE
0000189|PLC|FAULT|[189] [BRC] ATTESA INNESTO PER ROTAZIONE GRUPPO LAMA
0000190|PLC|FAULT|[190] SELETTORI CONTROSAGOMA NON OK [AREA UNICA]
0000191|PLC|FAULT|[191] BATTUTE DI RIFERIMENTO BARRA 1 NON OK
0000192|PLC|FAULT|[192] BATTUTE DI RIFERIMENTO BARRA 2 NON OK
0000193|PLC|FAULT|[193] BATTUTE DI RIFERIMENTO BARRA 3 NON OK
0000194|PLC|FAULT|[194] BATTUTE DI RIFERIMENTO BARRA 4 NON OK
0000195|PLC|FAULT|[195] BATTUTE DI RIFERIMENTO BARRA 5 NON OK
0000196|PLC|FAULT|[196] BATTUTE DI RIFERIMENTO BARRA 6 NON OK
0000197|PLC|FAULT|[197] BATTUTE DI RIFERIMENTO BARRA 7 NON OK
0000198|PLC|FAULT|[198] BATTUTE DI RIFERIMENTO BARRA 8 NON OK
0000199|PLC|FAULT|[199] BATTUTE DI RIFERIMENTO BARRA 9 NON OK
0000200|PLC|FAULT|[200] BATTUTE DI RIFERIMENTO BARRA 10 NON OK
0000201|PLC|FAULT|[201] BATTUTE DI RIFERIMENTO BARRA 11 NON OK
0000202|PLC|FAULT|[202] BATTUTE DI RIFERIMENTO BARRA 12 NON OK
0000203|PLC|FAULT|[203] BATTUTE DI RIFERIMENTO BARRA FISSA SX NON OK
0000204|PLC|FAULT|[204] BATTUTE DI RIFERIMENTO BARRA FISSA DX NON OK
0000205|PLC|FAULT|[205] BASI NON BLOCCATE ZONA 1
0000206|PLC|FAULT|[206] BASI NON BLOCCATE ZONA 2
0000207|PLC|FAULT|[207] BASI NON BLOCCATE ZONA 3
0000208|PLC|FAULT|[208] BASI NON BLOCCATE ZONA 4
0000209|PLC|WARNING|[209] SOSTITUZIONE VENTOSE IN CORSO AREA 3
0000210|PLC|WARNING|[210] SOSTITUZIONE VENTOSE IN CORSO AREA 4
0000211|PLC|FAULT|[211] [BORDATORE POWER] ATTESA GRUPPO A BORDARE ALTO
0000212|PLC|FAULT|[212] [BORDATORE POWER] ATTESA GRUPPO A BORDARE BASSO
0000213|PLC|FAULT|[213] [BORDATORE POWER] ATTESA GRUPPO A BORDARE POSIZ. CAMBIO RULLO
0000214|PLC|FAULT|[214] [BORDATORE POWER] ATTESA PIANO CARICAMENTO BORDI ALTO
0000215|PLC|FAULT|[215] [BORDATORE POWER] ATTESA PIANO CARICAMENTO BORDI BASSO
0000216|PLC|FAULT|[216] [BORDATORE POWER] MANCATA LETTURA BORDO GIUNZIONE
0000217|PLC|FAULT|[217] [BORDATORE POWER] ERRORE BORDO SU FOTOCELLULA DI CARICO
0000218|PLC|FAULT|[218] VASCA COLLA NON IN TEMPERATURA
0000219|PLC|FAULT|[219] [BORDATORE POWER] ASSENZA BORDO IN MULTIROTOLO
0000220|PLC|FAULT|[220] [BORDATORE POWER] ATTESA CICLO CARICO COLLA DA PREFUSORE
0000221|PLC|FAULT|[221] [BORDATORE POWER] MANCATO TAGLIO TRANCIA MAGAZZINO BORDI
0000222|PLC|FAULT|[222] [BORDATORE POWER] ATTESA CARICO COLLA DA PREFUSORE
0000223|PLC|FAULT|[223] [BORDATORE POWER] ANOMALIA SENSORI CILINDRO TESTA A BORDARE
0000224|PLC|FAULT|[224] SENSORE TESTA A BORDARE IN COLLISIONE
0000225|PLC|FAULT|[225] [BORDATORE POWER] TIMEOUT INTESTATURA BORDO TESTA A BORDARE
0000226|PLC|FAULT|[226] INTERVENTO TERMICI VASCA COLLA
0000227|PLC|FAULT|[227] INTERVENTO TERMICI PREFUSORE
0000228|PLC|FAULT|[228] INTERVENTO TERMICI LAMPADE ONDE CORTE
0000229|PLC|FAULT|[229] ESEGUIRE RIFERIMENTO MOT. ALTEZZA BORDO TESTA B.
0000230|PLC|FAULT|[230] ESEGUIRE RIFERIMENTO MOT. ALTEZZA BORDO MAGAZZINO B.
0000231|PLC|FAULT|[231] ESEGUIRE RIFERIMENTO MOT. CAMBIO RULLO PRESSIONE
0000232|PLC|FAULT|[232] TIMEOUT SENSORE CHIUSURA CILINDRO PREFUSORE
0000233|PLC|FAULT|[233] ESEGUIRE TARATURA TRAVERSE/VENTOSE
0000234|PLC|FAULT|[234] VENTOSE NON BLOCCATE AREA 1
0000235|PLC|FAULT|[235] VENTOSE NON BLOCCATE AREA 2
0000236|PLC|WARNING|[236] ATTESA SBLOCCO VENTOSA
0000237|PLC|WARNING|[237] ATTESA BLOCCO VENTOSA
0000238|PLC|WARNING|[238] RIMUOVERE VENTOSA: START CICLO
0000239|PLC|WARNING|[239] INSERIRE VENTOSA: START CICLO
0000240|PLC|FAULT|[240] ANOMALIA FOTOCELLULA MAGAZZINO BORDI
0000241|PLC|WARNING|[241] BARRA 1
0000242|PLC|WARNING|[242] BARRA 2
0000243|PLC|WARNING|[243] BARRA 3
0000244|PLC|WARNING|[244] BARRA 4
0000245|PLC|WARNING|[245] BARRA 5
0000246|PLC|WARNING|[246] BARRA 6
0000247|PLC|WARNING|[247] BARRA 7
0000248|PLC|WARNING|[248] BARRA 8
0000249|PLC|WARNING|[249] BARRA 9
0000250|PLC|WARNING|[250] BARRA 10
0000251|PLC|WARNING|[251] BARRA 11
0000252|PLC|WARNING|[252] BARRA 12
0000253|PLC|WARNING|[253] RIMUOVERE/INSERIRE VENTOSA COME DA GRAFICA SU AREA 1: START CICLO
0000254|PLC|WARNING|[254] RIMUOVERE/INSERIRE VENTOSA COME DA GRAFICA SU AREA 2: START CICLO
0000255|PLC|FAULT|[255] PORTE PROTEZIONE SBLOCCATE
0000256|PLC|FAULT|[256] ERRORE MODULO ZERO SPEED MANDRINO
0000257|PLC|FAULT|[257] INTESTATORE NON IN POSIZIONE
0000258|PLC|FAULT|[258] INTESTATORE 92 VUOTO
0000259|PLC|FAULT|[259] INTESTATORE 93 VUOTO
0000260|PLC|FAULT|[260] LIVELLO COLLA BASSO B.BASIC
0000261|PLC|FAULT|[261] [WD]EMERGENZA TRANSFER PREMUTA
0000262|PLC|FAULT|[262] [WD]INTERVENTO MAGNETOTERMICI TRANSFER
0000263|PLC|FAULT|[263] [WD]PORTE ARMADIO ELETTRICO TRANSFER APERTE
0000264|PLC|FAULT|[264] [WD]SVUOTARE TRANSFER
0000265|PLC|FAULT|[265] [WD]PEZZO IN ZONA DI SCARICO
0000266|PLC|FAULT|[266] [WD]ATTESA ROBOT 1 IN POSIZIONE
0000267|PLC|FAULT|[267] [WD]ATTESA ROBOT 2 IN POSIZIONE
0000268|PLC|FAULT|[268] [WD]SVUOTARE RULLIERE
0000269|PLC|FAULT|[269] [WD]DIMENSIONI PEZZO NON OK
0000270|PLC|FAULT|[270] [WD]SVUOTARE PIANO MACCHINA E PINZE ROBOT
0000271|PLC|FAULT|[271] [WD]PINZA ROBOT 1 NON IN POSIZIONE
0000272|PLC|FAULT|[272] [WD]PINZA ROBOT 2 NON IN POSIZIONE
0000273|PLC|FAULT|[273] MORSETTI ZONA 1 ALTI PNEUMATICAMENTE
0000274|PLC|FAULT|[274] MORSETTI ZONA 2 ALTI PNEUMATICAMENTE
0000275|PLC|FAULT|[275] EMERGENZA CAUSA MORSETTI ZONA 1
0000276|PLC|FAULT|[276] EMERGENZA CAUSA MORSETTI ZONA 2
0000277|PLC|FAULT|[277] ZONA DI COLLISIONE REFILATORE / RAS
0000278|PLC|FAULT|[278] PERICOLO SPORTELLO PANTOGRAFO APERTO
0000279|PLC|FAULT|[279] ZONA DI COLLISIONE BORDATORE
0000280|PLC|FAULT|[280] POSIZIONE DEL SELETTORE DELLA PULSANTIERA NON OK
0000281|PLC|FAULT|[281] PREMERE PULSANTE UOMO-MORTO
0000282|PLC|FAULT|[282] METTERE LA MACCHINA IN EMERGENZA
0000283|PLC|FAULT|[283] EMERGENZA TAPPETO ZONA 1
0000284|PLC|FAULT|[284] EMERGENZA TAPPETO ZONA 2
0000285|PLC|FAULT|[285] ZONA DI COLLISIONE MAGAZZINO RULLI PRESSIONE
0000286|PLC|FAULT|[286] TAPPETO AREA 1 IMPEGNATO
0000287|PLC|FAULT|[287] TAPPETO CENTRALE IMPEGNATO
0000288|PLC|FAULT|[288] TAPPETO AREA 2 IMPEGNATO
0000289|PLC|FAULT|[289] NUMERO RULLO PRESSORE ERRATO
0000290|PLC|FAULT|[290] CHECK VASCA COLLA
0000291|PLC|FAULT|[291] TIMEOUT GRUPPO VENTOSE NON ESCLUSO
0000292|PLC|FAULT|[292] TIMEOUT GRUPPO VENTOSE NON INSERITO
0000293|PLC|FAULT|[293] ASSE C BORDATORE IN QUOTA COLLISIONE CON G.VENTOSE
0000294|PLC|FAULT|[294] CICLO INSERIMENTO SPINA GRUPPO 92 NON OK(MUOVERE IN JOG+ L'ASSE X)
0000295|PLC|FAULT|[295] CICLO INSERIMENTO SPINA GRUPPO 93 NON OK(MUOVERE IN JOG- L'ASSE X)
0000296|PLC|FAULT|[296] RULLI NON IN POSIZIONE
0000297|PLC|FAULT|[297] ASSE X FUORI LIMITE PER RULLI
0000298|PLC|FAULT|[298] COLLISIONE RULLI CON GRUPPO TESTE
0000299|PLC|FAULT|[299] LASCIARE LIBERO
0000300|PLC|FAULT|[300] PERICOLO COLLISIONE BORDATORE PIANO MULTIFUNZIONE
0000301|PLC|FAULT|[301] MODALITÀ CELLA NON ATTIVA
0000302|PLC|FAULT|[302] ZONA DI COLLISIONE BORDATORE IN Y
0000303|PLC|FAULT|[303] ERRORE SEQUENZA CAMBIO RULLO PRESSORE
0000304|PLC|FAULT|[304]
0000305|PLC|FAULT|[305]
0000306|PLC|FAULT|[306]
0000307|PLC|FAULT|[307]
0000308|PLC|FAULT|[308]
0000309|PLC|FAULT|[309]
0000310|PLC|FAULT|[310]
0000311|PLC|FAULT|[311]
0000312|PLC|FAULT|[312]
0000313|PLC|FAULT|[313] PRESSORE 1 TESTA 1 NON IN POSIZIONE
0000314|PLC|FAULT|[314] PRESSORE 2 TESTA 1 NON IN POSIZIONE
0000315|PLC|FAULT|[315] PRESSORE 3 TESTA 1 NON IN POSIZIONE
0000316|PLC|FAULT|[316] PRESSORE 4 TESTA 1 NON IN POSIZIONE
0000317|PLC|FAULT|[317] PRESSORE 1 TESTA 2 NON IN POSIZIONE
0000318|PLC|FAULT|[318] PRESSORE 2 TESTA 2 NON IN POSIZIONE
0000319|PLC|FAULT|[319] PRESSORE 3 TESTA 2 NON IN POSIZIONE
0000320|PLC|FAULT|[320] PRESSORE 4 TESTA 2 NON IN POSIZIONE
0000321|PLC|FAULT|[321] ATTESA FINE CAMBIO UTENSILE
0000322|PLC|FAULT|[322]
0000323|PLC|FAULT|[323] PERICOLO COLLISIONE ASSI X-U
0000324|PLC|FAULT|[324] PERICOLO COLLISIONE ASSI Y-V
0000325|PLC|FAULT|[325] ZERO FEED RATE
0000326|PLC|FAULT|[326] PIGNA MOBILE ATTIVA - PADDLE DISABILITATO
0000327|PLC|FAULT|[327] APERTURA PINZE BLOCCATO DA ASSI Z-W BASSI
0000328|PLC|FAULT|[328] ATTENZIONE! PERICOLO COLLISIONE
0000329|PLC|FAULT|[329] CUFFIA LAMA NON IN POSIZIONE
0000330|PLC|FAULT|[330] BATTUTA RIFERIMENTO NON ESCLUSA
0000331|PLC|FAULT|[331] SCARICO PANNELLO: CONFERMARE CON START CICLO
0000332|PLC|FAULT|[332] VELOCITA' RIDOTTA A 25MT/MIN
0000333|PLC|FAULT|[333] DISCESA PRESSORE BLOCCATA DA ASSI Z-W BASSI
0000334|PLC|FAULT|[334] DISCESA MANDRINO BLOCCATA DA ASSI Z-W BASSI
0000335|PLC|FAULT|[335] DISCESA FUSO/LAMA BLOCCATA DA ASSI Z-W BASSI
0000336|PLC|FAULT|[336] DISCESA BATTUTA RIFERIMENTO BLOCCATA DA ASSI Z-W BASSI
0000337|PLC|FAULT|[337] MOVIMENTO ASSI X BLOCCATO DA PINZA APERTA E TESTE BASSE
0000338|PLC|FAULT|[338] MOVIMENTO ASSI U BLOCCATO DA PINZA APERTA E TESTE BASSE
0000339|PLC|FAULT|[339] MOVIMENTO ASSI YZ BLOCCATO DA PINZE APERTE
0000340|PLC|FAULT|[340] MOVIMENTO ASSI VW BLOCCATO DA PINZE APERTE
0000341|PLC|FAULT|[341]
0000342|PLC|FAULT|[342]
0000343|PLC|FAULT|[343]
0000344|PLC|FAULT|[344]
0000345|PLC|FAULT|[345]
0000346|PLC|FAULT|[346]
0000347|PLC|FAULT|[347]
0000348|PLC|FAULT|[348]
0000349|PLC|FAULT|[349]
0000350|PLC|FAULT|[350]
0000351|PLC|FAULT|[351]
0000352|PLC|FAULT|[352]
0000353|PLC|FAULT|[353]
0000354|PLC|FAULT|[354]
0000355|PLC|FAULT|[355]
0000356|PLC|FAULT|[356]
0000357|PLC|FAULT|[357]
0000358|PLC|FAULT|[358]
0000359|PLC|FAULT|[359]
0000360|PLC|FAULT|[360]
0000361|PLC|FAULT|[361]
0000362|PLC|FAULT|[362]
0000363|PLC|FAULT|[363]
0000364|PLC|FAULT|[364]
0000365|PLC|FAULT|[365]
0000366|PLC|FAULT|[366]
0000367|PLC|FAULT|[367]
0000368|PLC|FAULT|[368]
0000369|PLC|FAULT|[369]
0000370|PLC|FAULT|[370]
0000371|PLC|FAULT|[371]
0000372|PLC|FAULT|[372]
0000373|PLC|FAULT|[373]
0000374|PLC|FAULT|[374]
0000375|PLC|FAULT|[375]
0000376|PLC|FAULT|[376]
0000377|PLC|FAULT|[377]
0000378|PLC|FAULT|[378]
0000379|PLC|FAULT|[379]
0000380|PLC|FAULT|[380]
0000381|PLC|FAULT|[381]
0000382|PLC|FAULT|[382]
0000383|PLC|FAULT|[383]
0000384|PLC|FAULT|[384]
0000385|PLC|FAULT|[385]
0000386|PLC|FAULT|[386]
0000387|PLC|FAULT|[387]
0000388|PLC|FAULT|[388]
0000389|PLC|FAULT|[389]
0000390|PLC|FAULT|[390]
0000391|PLC|FAULT|[391]
0000392|PLC|FAULT|[392]
0000393|PLC|FAULT|[393]
0000394|PLC|FAULT|[394]
0000395|PLC|FAULT|[395]
0000396|PLC|FAULT|[396]
0000397|PLC|FAULT|[397]
0000398|PLC|FAULT|[398]
0000399|PLC|FAULT|[399]
0000400|PLC|FAULT|[400]
0000401|PLC|FAULT|[401]
0000402|PLC|FAULT|[402]
0000403|PLC|FAULT|[403]
0000404|PLC|FAULT|[404]
0000405|PLC|FAULT|[405]
0000406|PLC|FAULT|[406]
0000407|PLC|FAULT|[407]
0000408|PLC|FAULT|[408]
0000409|PLC|FAULT|[409]
0000410|PLC|FAULT|[410]
0000411|PLC|FAULT|[411]
0000412|PLC|FAULT|[412]
0000413|PLC|FAULT|[413]
0000414|PLC|FAULT|[414]
0000415|PLC|FAULT|[415]
0000416|PLC|FAULT|[416]
0000417|PLC|FAULT|[417]
0000418|PLC|FAULT|[418]
0000419|PLC|FAULT|[419]
0000420|PLC|FAULT|[420]
@@ -6,4 +6,9 @@
02) lettura assi... va da SImDATA, am serve "molteplice conversione", ovvero
BitConverter.ToInt32(BitConverter.GetBytes(PLC_MemoryRead[240]),0)
03) in caso di chiusura SI BLOCCA
va visto meglio l'insieme delle procedure di chiusura...
va visto meglio l'insieme delle procedure di chiusura...
TODO
- completare le aree IOT-STRING
- eliminare da thdNcEsaGvKvara "vecchie" aree di memoria
@@ -80,6 +80,15 @@ SysDefCn=C:\KVARA\DISCOI
; modo sincronizzato con il plc
;PlcSyncAddress=2103
;CONFIGURAZIONE DELLE AREE DI MEMORIA IOT (dimensioni vari array...)
IOT_AreaAddressByte=IOT.BYTE
IOT_AreaAddressWord=IOT.WORD
IOT_AreaAddressDWord=IOT.DWORD
IOT_AreaAddressString=IOT.STRING
;IOT_ByteAreaByteSize=20
;IOT_WordAreaByteSize=38
;IOT_DWordAreaByteSize=70
;IOT_StringAreaByteSize=4
[XILOG]
Enable=1
+131 -566
View File
@@ -8,699 +8,264 @@
<VacuumPump>
<element>
<ident>VacPump_01</ident>
<alias>Pompa 1</alias>
<fonte>Random</fonte>
<dataRefList>
<dataRef>
<Key>VacPump_01_Status</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>VacPump_01_WrkTime</Key>
<Value>0</Value>
</dataRef>
</dataRefList>
<dataRefList />
</element>
<element>
<ident>VacPump_02</ident>
<alias>Pompa 2</alias>
<fonte>Random</fonte>
<dataRefList>
<dataRef>
<Key>VacPump_02_Status</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>VacPump_02_WrkTime</Key>
<Value>0</Value>
</dataRef>
</dataRefList>
<dataRefList />
</element>
</VacuumPump>
<VacuumAct>
<element>
<ident>VacAct_01</ident>
<alias>Attuatore vuoto 1</alias>
<fonte>Random</fonte>
<dataRefList>
<dataRef>
<Key>VacAct_01_Count</Key>
<Value>0</Value>
</dataRef>
</dataRefList>
<dataRefList />
</element>
<element>
<ident>VacAct_02</ident>
<alias>Attuatore vuoto 2</alias>
<fonte>Random</fonte>
<dataRefList>
<dataRef>
<Key>VacAct_02_Count</Key>
<Value>0</Value>
</dataRef>
</dataRefList>
<dataRefList />
</element>
<element>
<ident>VacAct_03</ident>
<dataRefList />
</element>
<element>
<ident>VacAct_04</ident>
<dataRefList />
</element>
</VacuumAct>
<Lubro>
<element>
<ident>Lubro_01</ident>
<alias>Lubrorefrigerante 1</alias>
<fonte>Random</fonte>
<dataRefList>
<dataRef>
<Key>Lubro_01_Num</Key>
<Value>0</Value>
</dataRef>
</dataRefList>
<dataRefList />
</element>
<element>
<ident>Lubro_02</ident>
<alias>Lubrorefrigerante 2</alias>
<fonte>Random</fonte>
<dataRefList>
<dataRef>
<Key>Lubro_02_Num</Key>
<Value>0</Value>
</dataRef>
</dataRefList>
<dataRefList />
</element>
</Lubro>
<Cooler>
<element>
<ident>Cooler_01</ident>
<alias>Cooler 1</alias>
<fonte>Random</fonte>
<dataRefList>
<dataRef>
<Key>Cooler_01_Status</Key>
<Value>0</Value>
</dataRef>
</dataRefList>
<dataRefList />
</element>
<element>
<ident>Cooler_02</ident>
<alias>Cooler 2</alias>
<fonte>Random</fonte>
<dataRefList>
<dataRef>
<Key>Cooler_02_Status</Key>
<Value>0</Value>
</dataRef>
</dataRefList>
<dataRefList />
</element>
</Cooler>
<Press>
<element>
<ident>Press_01</ident>
<alias>Pressostato 1</alias>
<fonte>Random</fonte>
<dataRefList>
<dataRef>
<Key>Press_01_Value</Key>
<Value>0</Value>
</dataRef>
</dataRefList>
<dataRefList />
</element>
<element>
<ident>Press_02</ident>
<alias>Pressostato 2</alias>
<fonte>Random</fonte>
<dataRefList>
<dataRef>
<Key>Press_02_Value</Key>
<Value>0</Value>
</dataRef>
</dataRefList>
<dataRefList />
</element>
</Press>
<Temp>
<element>
<ident>Temp_01</ident>
<alias>Sonda Temperatura 1</alias>
<fonte>Random</fonte>
<dataRefList>
<dataRef>
<Key>Temp_01_Value</Key>
<Value>0</Value>
</dataRef>
</dataRefList>
<dataRefList />
</element>
<element>
<ident>Temp_02</ident>
<alias>Sonda Temperatura 2</alias>
<fonte>Random</fonte>
<dataRefList>
<dataRef>
<Key>Temp_02_Value</Key>
<Value>0</Value>
</dataRef>
</dataRefList>
<dataRefList />
</element>
</Temp>
<Path>
<element>
<ident>Path_01</ident>
<alias>Path num 1</alias>
<fonte>Random</fonte>
<dataRefList>
<dataRef>
<Key>Path_01_FeedRate</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Path_01_FeedOverr</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Path_01_RapidOverr</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Path_01_PosActX</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Path_01_PosActY</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Path_01_PosActZ</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Path_01_PosActI</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Path_01_PosActJ</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Path_01_PosActK</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Path_01_Type</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Path_01_PartId</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Path_01_PZ_TOT</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Path_01_Cod_M</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Path_01_Cod_S</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Path_01_Cod_T</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Path_01_RUN_MODE</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Path_01_EXE_MODE</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Path_01_CurrProg</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Path_01_CurrProg_RowNum</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Path_01_ActiveAxes</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Path_01_CodG_Act</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Path_01_SubMode</Key>
<Value>0</Value>
</dataRef>
</dataRefList>
<dataRefList />
</element>
</Path>
<UnOp>
<element>
<ident>UnOp_01</ident>
<alias>Unita Op num 1</alias>
<fonte>Random</fonte>
<dataRefList>
<dataRef>
<Key>UnOp_01_ToolId</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>UnOp_01_NumCU</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>UnOp_01_Status</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>UnOp_01_VitaRes</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>UnOp_01_Speed</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>UnOp_01_SpeedOverr</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>UnOp_01_Load</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>UnOp_01_AccTime</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>UnOp_01_VitaResType</Key>
<Value>0</Value>
</dataRef>
</dataRefList>
<dataRefList />
</element>
<element>
<ident>UnOp_02</ident>
<dataRefList />
</element>
<element>
<ident>UnOp_03</ident>
<dataRefList />
</element>
<element>
<ident>UnOp_04</ident>
<dataRefList />
</element>
<element>
<ident>UnOp_05</ident>
<dataRefList />
</element>
<element>
<ident>UnOp_06</ident>
<dataRefList />
</element>
<element>
<ident>UnOp_07</ident>
<dataRefList />
</element>
<element>
<ident>UnOp_08</ident>
<dataRefList />
</element>
</UnOp>
<Axis>
<element>
<ident>Axis_01</ident>
<alias>Asse num 1</alias>
<fonte>Random</fonte>
<dataRefList>
<dataRef>
<Key>Axis_01_MainProc</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_01_IsMast</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_01_MastId</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_01_Type</Key>
<Value>LINEAR</Value>
</dataRef>
<dataRef>
<Key>Axis_01_Dir</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_01_Load</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_01_PosAct</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_01_PosTgt</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_01_FeedAct</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_01_FeedOver</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_01_AccelAct</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_01_AccTime</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_01_Battery</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_01_DistDone</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_01_InvDDone</Key>
<Value>0</Value>
</dataRef>
</dataRefList>
</element>
<element>
<ident>Axis_02</ident>
<alias>Asse num 2</alias>
<fonte>Random</fonte>
<dataRefList>
<dataRef>
<Key>Axis_02_MainProc</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_02_IsMast</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_02_MastId</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_02_Type</Key>
<Value>LINEAR</Value>
</dataRef>
<dataRef>
<Key>Axis_02_Dir</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_02_Load</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_02_PosAct</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_02_PosTgt</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_02_FeedAct</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_02_FeedOver</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_02_AccelAct</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_02_AccTime</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_02_Battery</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_02_DistDone</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_02_InvDDone</Key>
<Value>0</Value>
</dataRef>
</dataRefList>
</element>
<element>
<ident>Axis_03</ident>
<alias>Asse num 3</alias>
<fonte>Random</fonte>
<dataRefList>
<dataRef>
<Key>Axis_03_MainProc</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_03_IsMast</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_03_MastId</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_03_Type</Key>
<Value>LINEAR</Value>
</dataRef>
<dataRef>
<Key>Axis_03_Dir</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_03_Load</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_03_PosAct</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_03_PosTgt</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_03_FeedAct</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_03_FeedOver</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_03_AccelAct</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_03_AccTime</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_03_Battery</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_03_DistDone</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_03_InvDDone</Key>
<Value>0</Value>
</dataRef>
</dataRefList>
</element>
<element>
<ident>Axis_04</ident>
<alias>Asse num 4</alias>
<fonte>Random</fonte>
<dataRefList>
<dataRef>
<Key>Axis_04_MainProc</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_04_IsMast</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_04_MastId</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_04_Type</Key>
<Value>ROTARY</Value>
</dataRef>
<dataRef>
<Key>Axis_04_Dir</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_04_Load</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_04_PosAct</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_04_PosTgt</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_04_FeedAct</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_04_FeedOver</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_04_AccelAct</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_04_AccTime</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_04_Battery</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_04_DistDone</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_04_InvDDone</Key>
<Value>0</Value>
</dataRef>
</dataRefList>
</element>
<element>
<ident>Axis_05</ident>
<alias>Asse num 5</alias>
<fonte>Random</fonte>
<dataRefList>
<dataRef>
<Key>Axis_05_MainProc</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_05_IsMast</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_05_MastId</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_05_Type</Key>
<Value>ROTARY</Value>
</dataRef>
<dataRef>
<Key>Axis_05_Dir</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_05_Load</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_05_PosAct</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_05_PosTgt</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_05_FeedAct</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_05_FeedOver</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_05_AccelAct</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_05_AccTime</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_05_Battery</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_05_DistDone</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_05_InvDDone</Key>
<Value>0</Value>
</dataRef>
</dataRefList>
</element>
<element>
<ident>Axis_06</ident>
<alias>Asse num 6</alias>
<fonte>Random</fonte>
<dataRefList>
<dataRef>
<Key>Axis_06_MainProc</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_06_IsMast</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_06_MastId</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_06_Type</Key>
<Value>LINEAR</Value>
</dataRef>
</dataRefList>
</element>
<element>
<ident>Axis_07</ident>
<dataRefList>
<dataRef>
<Key>Axis_06_Dir</Key>
<Value>0</Value>
<Key>Axis_07_Type</Key>
<Value>LINEAR</Value>
</dataRef>
</dataRefList>
</element>
<element>
<ident>Axis_08</ident>
<dataRefList>
<dataRef>
<Key>Axis_06_Load</Key>
<Value>0</Value>
<Key>Axis_08_Type</Key>
<Value>LINEAR</Value>
</dataRef>
</dataRefList>
</element>
<element>
<ident>Axis_09</ident>
<dataRefList>
<dataRef>
<Key>Axis_06_PosAct</Key>
<Value>0</Value>
<Key>Axis_09_Type</Key>
<Value>LINEAR</Value>
</dataRef>
</dataRefList>
</element>
<element>
<ident>Axis_10</ident>
<dataRefList>
<dataRef>
<Key>Axis_06_PosTgt</Key>
<Value>0</Value>
<Key>Axis_10_Type</Key>
<Value>LINEAR</Value>
</dataRef>
</dataRefList>
</element>
<element>
<ident>Axis_11</ident>
<dataRefList>
<dataRef>
<Key>Axis_06_FeedAct</Key>
<Value>0</Value>
<Key>Axis_11_Type</Key>
<Value>LINEAR</Value>
</dataRef>
</dataRefList>
</element>
<element>
<ident>Axis_12</ident>
<dataRefList>
<dataRef>
<Key>Axis_06_FeedOver</Key>
<Value>0</Value>
<Key>Axis_12_Type</Key>
<Value>LINEAR</Value>
</dataRef>
</dataRefList>
</element>
<element>
<ident>Axis_13</ident>
<dataRefList>
<dataRef>
<Key>Axis_06_AccelAct</Key>
<Value>0</Value>
<Key>Axis_13_Type</Key>
<Value>LINEAR</Value>
</dataRef>
</dataRefList>
</element>
<element>
<ident>Axis_14</ident>
<dataRefList>
<dataRef>
<Key>Axis_06_AccTime</Key>
<Value>0</Value>
<Key>Axis_14_Type</Key>
<Value>LINEAR</Value>
</dataRef>
</dataRefList>
</element>
<element>
<ident>Axis_15</ident>
<dataRefList>
<dataRef>
<Key>Axis_06_Battery</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_06_DistDone</Key>
<Value>0</Value>
</dataRef>
<dataRef>
<Key>Axis_06_InvDDone</Key>
<Value>0</Value>
<Key>Axis_15_Type</Key>
<Value>LINEAR</Value>
</dataRef>
</dataRefList>
</element>
</Axis>
<MemArea>
<element>
<ident>MemArea_01</ident>
<dataRefList />
</element>
<element>
<ident>MemArea_02</ident>
<dataRefList />
</element>
<element>
<ident>MemArea_03</ident>
<dataRefList />
</element>
<element>
<ident>MemArea_04</ident>
<dataRefList />
</element>
</MemArea>
</AdapterConf>
+71 -7
View File
@@ -1,4 +1,4 @@
MODULE 1,PLC%d: ,276
MODULE 1,PLC%d: ,340
@0," "
@1,"MANDRINO 1 NON BLOCCATO"
@2,"MANDRINO 2 NON BLOCCATO"
@@ -10,14 +10,14 @@ MODULE 1,PLC%d: ,276
@8,"INVERTER 2 NON OK"
@9,"INVERTER MANDRINO SUPPLEMENTARE NON OK"
@10,"SAVE ENERGY ATTIVO"
@11,"[WD]SUPERATO NUMERO PEZZI MASSIMO CARICABILE SU TRANSFER"
@11,B,"[WD] SUPERATO NUMERO PEZZI MASSIMO CARICABILE SU TRANSFER"
@12,"VERIFICA CONTATTORI NON OK"
@13,"TIMEOUT COMUNICAZIONE XILOG"
@14,B,"INTERVENTO MAGNETOTERMICI"
@15,"PORTE PROTEZIONE APERTE"
@16,"TAPPETO CONVOGLIA TRUCIOLI NON IN POSIZIONE"
@17,"COLLISIONE RILEVATA DAL SIMULATORE"
@18," "
@18,"BUMPER MOBILE NON IN POSIZIONE"
@19,"FORATRICE NON IN POSIZIONE"
@20,B,"STOP MACCHINA DA CODICI M SUPPLEMENTARI"
@21,B,"M00 ATTIVO: START CICLO"
@@ -32,7 +32,7 @@ MODULE 1,PLC%d: ,276
@30,B,"ABILITAZIONE BL/SBL UTENSILE MANDRINO 1"
@31,B,"ABILITAZIONE BL/SBL UTENSILE MANDRINO 2"
@32,B,"ABILITAZIONE BL/SBL UTENSILE MANDRINO SUPPLEMENTARE"
@33,"CICLO ETICHETTATURA IN CORSO"
@33,B,"CICLO ETICHETTATURA IN CORSO"
@34,"ETICHETTATRICE NON PRONTA"
@35,"ETICHETTATRICE NON IN POSIZIONE"
@36,"ERRORE ETICHETTATRICE"
@@ -141,9 +141,9 @@ MODULE 1,PLC%d: ,276
@139,"ASSI PRISMA BC NON IN POSIZIONE"
@140,"AZIONAMENTI ASSI PRISMA BC NON OK"
@141,"TASTATORE RADIO NON OK"
@142," "
@143," "
@144," "
@142,"AVVICINATORI NON IN POSIZIONE"
@143,"AVVICINAMENTO PANNELLO NON AVVENUTO"
@144,"PRESA PANNELLO NON OK"
@145,B,"RIAGGANCIO MANDRINO IN CORSO"
@146,B,"RIAGGANCIO MANDRINO FALLITO"
@147,B,"RIAGGANCIO MANDRINO AVVENUTO"
@@ -276,4 +276,68 @@ MODULE 1,PLC%d: ,276
@274,"MORSETTI ZONA 2 ALTI PNEUMATICAMENTE"
@275,"EMERGENZA CAUSA MORSETTI ZONA 1"
@276,"EMERGENZA CAUSA MORSETTI ZONA 2"
@277,"ZONA DI COLLISIONE REFILATORE / RAS"
@278,"PERICOLO SPORTELLO PANTOGRAFO APERTO"
@279,"ZONA DI COLLISIONE BORDATORE"
@280,"POSIZIONE DEL SELETTORE DELLA PULSANTIERA NON OK"
@281,"PREMERE PULSANTE UOMO-MORTO"
@282,"METTERE LA MACCHINA IN EMERGENZA"
@283,"EMERGENZA TAPPETO ZONA 1"
@284,"EMERGENZA TAPPETO ZONA 2"
@285,"ZONA DI COLLISIONE MAGAZZINO RULLI PRESSIONE"
@286,"TAPPETO AREA 1 IMPEGNATO"
@287,"TAPPETO CENTRALE IMPEGNATO"
@288,"TAPPETO AREA 2 IMPEGNATO"
@289,"NUMERO RULLO PRESSORE ERRATO"
@290,"CHECK VASCA COLLA"
@291,"TIMEOUT GRUPPO VENTOSE NON ESCLUSO"
@292,"TIMEOUT GRUPPO VENTOSE NON INSERITO"
@293,"ASSE C BORDATORE IN QUOTA COLLISIONE CON G.VENTOSE"
@294,"CICLO INSERIMENTO SPINA GRUPPO 92 NON OK(MUOVERE IN JOG+ L'ASSE X)"
@295,"CICLO INSERIMENTO SPINA GRUPPO 93 NON OK(MUOVERE IN JOG- L'ASSE X)"
@296,"RULLI NON IN POSIZIONE"
@297,"ASSE X FUORI LIMITE PER RULLI"
@298,"COLLISIONE RULLI CON GRUPPO TESTE"
@299,"LASCIARE LIBERO"
@300,"PERICOLO COLLISIONE BORDATORE PIANO MULTIFUNZIONE"
@301,"MODALITÀ CELLA NON ATTIVA"
@302,"ZONA DI COLLISIONE BORDATORE IN Y"
@303,"ERRORE SEQUENZA CAMBIO RULLO PRESSORE"
@304," "
@305," "
@306," "
@307," "
@308," "
@309," "
@310," "
@311," "
@312," "
@313,"PRESSORE 1 TESTA 1 NON IN POSIZIONE"
@314,"PRESSORE 2 TESTA 1 NON IN POSIZIONE"
@315,"PRESSORE 3 TESTA 1 NON IN POSIZIONE"
@316,"PRESSORE 4 TESTA 1 NON IN POSIZIONE"
@317,"PRESSORE 1 TESTA 2 NON IN POSIZIONE"
@318,"PRESSORE 2 TESTA 2 NON IN POSIZIONE"
@319,"PRESSORE 3 TESTA 2 NON IN POSIZIONE"
@320,"PRESSORE 4 TESTA 2 NON IN POSIZIONE"
@321,"ATTESA FINE CAMBIO UTENSILE"
@322," "
@323,"PERICOLO COLLISIONE ASSI X-U"
@324,"PERICOLO COLLISIONE ASSI Y-V"
@325,"ZERO FEED RATE"
@326,"PIGNA MOBILE ATTIVA - PADDLE DISABILITATO"
@327,"APERTURA PINZE BLOCCATO DA ASSI Z-W BASSI"
@328,"ATTENZIONE! PERICOLO COLLISIONE"
@329,"CUFFIA LAMA NON IN POSIZIONE"
@330,"BATTUTA RIFERIMENTO NON ESCLUSA"
@331,"SCARICO PANNELLO: CONFERMARE CON START CICLO"
@332,"VELOCITA' RIDOTTA A 25MT/MIN"
@333,"DISCESA PRESSORE BLOCCATA DA ASSI Z-W BASSI"
@334,"DISCESA MANDRINO BLOCCATA DA ASSI Z-W BASSI"
@335,"DISCESA FUSO/LAMA BLOCCATA DA ASSI Z-W BASSI"
@336,"DISCESA BATTUTA RIFERIMENTO BLOCCATA DA ASSI Z-W BASSI"
@337,"MOVIMENTO ASSI X BLOCCATO DA PINZA APERTA E TESTE BASSE"
@338,"MOVIMENTO ASSI U BLOCCATO DA PINZA APERTA E TESTE BASSE"
@339,"MOVIMENTO ASSI YZ BLOCCATO DA PINZE APERTE"
@340,"MOVIMENTO ASSI VW BLOCCATO DA PINZE APERTE"
END
@@ -5,8 +5,11 @@
# parte da file di input (tipicamente C:\Kvara\Xilog Plus Default\Country\Ita\app.msg)
# e genera un file di output nel formato necessario per MTConnect Adapter
#----------------------------------------------
#
# abilitazione script:
# Set-ExecutionPolicy -Scope Process -ExecutionPolicy unrestricted
#.\convertScmAlarm.ps1 .\app.msg AlarmListEsaGv.map
#.\convertScmAlarm.ps1 .\app.msg AlarmListEsaGv.txt
param(
+107 -55
View File
@@ -55,47 +55,54 @@
this.nUnOp = new System.Windows.Forms.TextBox();
this.label12 = new System.Windows.Forms.Label();
this.nAssi = new System.Windows.Forms.TextBox();
this.label13 = new System.Windows.Forms.Label();
this.nMemArea = new System.Windows.Forms.TextBox();
this.SuspendLayout();
//
// txtAdapter
//
this.txtAdapter.Location = new System.Drawing.Point(91, 10);
this.txtAdapter.Location = new System.Drawing.Point(121, 12);
this.txtAdapter.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.txtAdapter.Name = "txtAdapter";
this.txtAdapter.Size = new System.Drawing.Size(214, 20);
this.txtAdapter.Size = new System.Drawing.Size(284, 22);
this.txtAdapter.TabIndex = 0;
this.txtAdapter.Text = "CMS_ADAPTER_00";
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(22, 13);
this.label1.Location = new System.Drawing.Point(29, 16);
this.label1.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(58, 13);
this.label1.Size = new System.Drawing.Size(73, 17);
this.label1.TabIndex = 1;
this.label1.Text = "ADAPTER";
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(311, 13);
this.label2.Location = new System.Drawing.Point(415, 16);
this.label2.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(63, 13);
this.label2.Size = new System.Drawing.Size(79, 17);
this.label2.TabIndex = 3;
this.label2.Text = "FILE NAME";
//
// txtFileName
//
this.txtFileName.Location = new System.Drawing.Point(380, 10);
this.txtFileName.Location = new System.Drawing.Point(507, 12);
this.txtFileName.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.txtFileName.Name = "txtFileName";
this.txtFileName.Size = new System.Drawing.Size(122, 20);
this.txtFileName.Size = new System.Drawing.Size(161, 22);
this.txtFileName.TabIndex = 2;
this.txtFileName.Text = "FANUC.xml";
this.txtFileName.Text = "Adapter_ItemList.xml";
//
// btnSave
//
this.btnSave.Location = new System.Drawing.Point(479, 467);
this.btnSave.Location = new System.Drawing.Point(639, 575);
this.btnSave.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.btnSave.Name = "btnSave";
this.btnSave.Size = new System.Drawing.Size(201, 38);
this.btnSave.Size = new System.Drawing.Size(268, 47);
this.btnSave.TabIndex = 4;
this.btnSave.Text = "SAVE CONFIGURATION";
this.btnSave.UseVisualStyleBackColor = true;
@@ -103,9 +110,10 @@
//
// btnLoad
//
this.btnLoad.Location = new System.Drawing.Point(16, 467);
this.btnLoad.Location = new System.Drawing.Point(21, 575);
this.btnLoad.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.btnLoad.Name = "btnLoad";
this.btnLoad.Size = new System.Drawing.Size(201, 38);
this.btnLoad.Size = new System.Drawing.Size(268, 47);
this.btnLoad.TabIndex = 5;
this.btnLoad.Text = "LOAD CONFIGURATION";
this.btnLoad.UseVisualStyleBackColor = true;
@@ -114,43 +122,48 @@
// label3
//
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(10, 39);
this.label3.Location = new System.Drawing.Point(13, 48);
this.label3.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(75, 13);
this.label3.Size = new System.Drawing.Size(96, 17);
this.label3.TabIndex = 7;
this.label3.Text = "n° VAC PUMP";
//
// nVacPump
//
this.nVacPump.Location = new System.Drawing.Point(91, 36);
this.nVacPump.Location = new System.Drawing.Point(121, 44);
this.nVacPump.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.nVacPump.Name = "nVacPump";
this.nVacPump.Size = new System.Drawing.Size(33, 20);
this.nVacPump.Size = new System.Drawing.Size(43, 22);
this.nVacPump.TabIndex = 6;
this.nVacPump.Text = "1";
//
// label4
//
this.label4.AutoSize = true;
this.label4.Location = new System.Drawing.Point(176, 39);
this.label4.Location = new System.Drawing.Point(235, 48);
this.label4.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(60, 13);
this.label4.Size = new System.Drawing.Size(77, 17);
this.label4.TabIndex = 9;
this.label4.Text = "n° VAC Act";
//
// nVacAct
//
this.nVacAct.Location = new System.Drawing.Point(242, 36);
this.nVacAct.Location = new System.Drawing.Point(323, 44);
this.nVacAct.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.nVacAct.Name = "nVacAct";
this.nVacAct.Size = new System.Drawing.Size(33, 20);
this.nVacAct.Size = new System.Drawing.Size(43, 22);
this.nVacAct.TabIndex = 8;
this.nVacAct.Text = "2";
//
// label5
//
this.label5.AutoSize = true;
this.label5.Location = new System.Drawing.Point(517, 13);
this.label5.Location = new System.Drawing.Point(689, 16);
this.label5.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(32, 13);
this.label5.Size = new System.Drawing.Size(40, 17);
this.label5.TabIndex = 10;
this.label5.Text = "TIPO";
//
@@ -162,135 +175,171 @@
"ESAGV",
"FANUC",
"SIEMENS"});
this.cbTipoAdapt.Location = new System.Drawing.Point(555, 10);
this.cbTipoAdapt.Location = new System.Drawing.Point(740, 12);
this.cbTipoAdapt.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.cbTipoAdapt.Name = "cbTipoAdapt";
this.cbTipoAdapt.Size = new System.Drawing.Size(121, 21);
this.cbTipoAdapt.Size = new System.Drawing.Size(160, 24);
this.cbTipoAdapt.TabIndex = 11;
//
// label6
//
this.label6.AutoSize = true;
this.label6.Location = new System.Drawing.Point(314, 39);
this.label6.Location = new System.Drawing.Point(419, 48);
this.label6.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(57, 13);
this.label6.Size = new System.Drawing.Size(74, 17);
this.label6.TabIndex = 13;
this.label6.Text = "n° LUBRO";
//
// nLubro
//
this.nLubro.Location = new System.Drawing.Point(380, 36);
this.nLubro.Location = new System.Drawing.Point(507, 44);
this.nLubro.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.nLubro.Name = "nLubro";
this.nLubro.Size = new System.Drawing.Size(33, 20);
this.nLubro.Size = new System.Drawing.Size(43, 22);
this.nLubro.TabIndex = 12;
this.nLubro.Text = "1";
//
// label7
//
this.label7.AutoSize = true;
this.label7.Location = new System.Drawing.Point(473, 39);
this.label7.Location = new System.Drawing.Point(631, 48);
this.label7.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.label7.Name = "label7";
this.label7.Size = new System.Drawing.Size(64, 13);
this.label7.Size = new System.Drawing.Size(84, 17);
this.label7.TabIndex = 15;
this.label7.Text = "n° COOLER";
//
// nCooler
//
this.nCooler.Location = new System.Drawing.Point(539, 36);
this.nCooler.Location = new System.Drawing.Point(719, 44);
this.nCooler.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.nCooler.Name = "nCooler";
this.nCooler.Size = new System.Drawing.Size(33, 20);
this.nCooler.Size = new System.Drawing.Size(43, 22);
this.nCooler.TabIndex = 14;
this.nCooler.Text = "2";
//
// label8
//
this.label8.AutoSize = true;
this.label8.Location = new System.Drawing.Point(25, 65);
this.label8.Location = new System.Drawing.Point(33, 80);
this.label8.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.label8.Name = "label8";
this.label8.Size = new System.Drawing.Size(56, 13);
this.label8.Size = new System.Drawing.Size(72, 17);
this.label8.TabIndex = 17;
this.label8.Text = "n° PRESS";
//
// nPress
//
this.nPress.Location = new System.Drawing.Point(91, 62);
this.nPress.Location = new System.Drawing.Point(121, 76);
this.nPress.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.nPress.Name = "nPress";
this.nPress.Size = new System.Drawing.Size(33, 20);
this.nPress.Size = new System.Drawing.Size(43, 22);
this.nPress.TabIndex = 16;
this.nPress.Text = "1";
//
// label9
//
this.label9.AutoSize = true;
this.label9.Location = new System.Drawing.Point(176, 65);
this.label9.Location = new System.Drawing.Point(235, 80);
this.label9.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.label9.Name = "label9";
this.label9.Size = new System.Drawing.Size(50, 13);
this.label9.Size = new System.Drawing.Size(64, 17);
this.label9.TabIndex = 19;
this.label9.Text = "n° TEMP";
//
// nTempe
//
this.nTempe.Location = new System.Drawing.Point(242, 62);
this.nTempe.Location = new System.Drawing.Point(323, 76);
this.nTempe.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.nTempe.Name = "nTempe";
this.nTempe.Size = new System.Drawing.Size(33, 20);
this.nTempe.Size = new System.Drawing.Size(43, 22);
this.nTempe.TabIndex = 18;
this.nTempe.Text = "1";
//
// label10
//
this.label10.AutoSize = true;
this.label10.Location = new System.Drawing.Point(314, 65);
this.label10.Location = new System.Drawing.Point(419, 80);
this.label10.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.label10.Name = "label10";
this.label10.Size = new System.Drawing.Size(49, 13);
this.label10.Size = new System.Drawing.Size(63, 17);
this.label10.TabIndex = 21;
this.label10.Text = "n° PATH";
//
// nPath
//
this.nPath.Location = new System.Drawing.Point(380, 62);
this.nPath.Location = new System.Drawing.Point(507, 76);
this.nPath.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.nPath.Name = "nPath";
this.nPath.Size = new System.Drawing.Size(33, 20);
this.nPath.Size = new System.Drawing.Size(43, 22);
this.nPath.TabIndex = 20;
this.nPath.Text = "1";
//
// label11
//
this.label11.AutoSize = true;
this.label11.Location = new System.Drawing.Point(473, 65);
this.label11.Location = new System.Drawing.Point(631, 80);
this.label11.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.label11.Name = "label11";
this.label11.Size = new System.Drawing.Size(52, 13);
this.label11.Size = new System.Drawing.Size(68, 17);
this.label11.TabIndex = 23;
this.label11.Text = "n° Un OP";
//
// nUnOp
//
this.nUnOp.Location = new System.Drawing.Point(539, 62);
this.nUnOp.Location = new System.Drawing.Point(719, 76);
this.nUnOp.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.nUnOp.Name = "nUnOp";
this.nUnOp.Size = new System.Drawing.Size(33, 20);
this.nUnOp.Size = new System.Drawing.Size(43, 22);
this.nUnOp.TabIndex = 22;
this.nUnOp.Text = "1";
//
// label12
//
this.label12.AutoSize = true;
this.label12.Location = new System.Drawing.Point(25, 91);
this.label12.Location = new System.Drawing.Point(33, 112);
this.label12.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.label12.Name = "label12";
this.label12.Size = new System.Drawing.Size(39, 13);
this.label12.Size = new System.Drawing.Size(52, 17);
this.label12.TabIndex = 25;
this.label12.Text = "n° Assi";
//
// nAssi
//
this.nAssi.Location = new System.Drawing.Point(91, 88);
this.nAssi.Location = new System.Drawing.Point(121, 108);
this.nAssi.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.nAssi.Name = "nAssi";
this.nAssi.Size = new System.Drawing.Size(33, 20);
this.nAssi.Size = new System.Drawing.Size(43, 22);
this.nAssi.TabIndex = 24;
this.nAssi.Text = "1";
//
// label13
//
this.label13.AutoSize = true;
this.label13.Location = new System.Drawing.Point(235, 116);
this.label13.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.label13.Name = "label13";
this.label13.Size = new System.Drawing.Size(86, 17);
this.label13.TabIndex = 27;
this.label13.Text = "n° MemArea";
//
// nMemArea
//
this.nMemArea.Location = new System.Drawing.Point(323, 112);
this.nMemArea.Margin = new System.Windows.Forms.Padding(4);
this.nMemArea.Name = "nMemArea";
this.nMemArea.Size = new System.Drawing.Size(43, 22);
this.nMemArea.TabIndex = 26;
this.nMemArea.Text = "1";
//
// SetupAdapter
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(692, 517);
this.ClientSize = new System.Drawing.Size(923, 636);
this.Controls.Add(this.label13);
this.Controls.Add(this.nMemArea);
this.Controls.Add(this.label12);
this.Controls.Add(this.nAssi);
this.Controls.Add(this.label11);
@@ -318,6 +367,7 @@
this.Controls.Add(this.label1);
this.Controls.Add(this.txtAdapter);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.Name = "SetupAdapter";
this.Text = "Adapter Setup Manager";
this.ResumeLayout(false);
@@ -353,5 +403,7 @@
private System.Windows.Forms.TextBox nUnOp;
private System.Windows.Forms.Label label12;
private System.Windows.Forms.TextBox nAssi;
private System.Windows.Forms.Label label13;
private System.Windows.Forms.TextBox nMemArea;
}
}
+45 -65
View File
@@ -199,6 +199,24 @@ namespace MTC_Adapter
nAssi.Text = value.ToString();
}
}
protected int numMemArea
{
get
{
int answ = 0;
try
{
answ = Convert.ToInt32(nMemArea.Text);
}
catch
{ }
return answ;
}
set
{
nMemArea.Text = value.ToString();
}
}
private void btnCreateFile_Click(object sender, EventArgs e)
{
@@ -239,6 +257,22 @@ namespace MTC_Adapter
// init lista parametri
List<DataRefItem<string, string>> listaDR;
// MemArea
if (numMemArea > 0)
{
// creo elementi richiesti
element[] MemArea = new element[numMemArea];
// ciclo x istanziare!
for (int i = 0; i < numMemArea; i++)
{
// inizializzo list x parametri
listaDR = new List<DataRefItem<string, string>>();
MemArea[i] = new element(string.Format("MemArea_{0:00}", i + 1), listaDR);
}
// salvo oggetto
c.MemArea = MemArea;
}
// VAC PUMP
if (numVacPump > 0)
{
@@ -249,9 +283,7 @@ namespace MTC_Adapter
{
// inizializzo list x parametri
listaDR = new List<DataRefItem<string, string>>();
listaDR.Add(new DataRefItem<string, string>(string.Format("VacPump_{0:00}_Status", i + 1), "0"));
listaDR.Add(new DataRefItem<string, string>(string.Format("VacPump_{0:00}_WrkTime", i + 1), "0"));
VacuumPump[i] = new element(string.Format("VacPump_{0:00}", i + 1), string.Format("Pompa {0}", i + 1), fonteDati.Random, listaDR);
VacuumPump[i] = new element(string.Format("VacPump_{0:00}", i + 1), listaDR);
}
// salvo oggetto
c.VacuumPump = VacuumPump;
@@ -267,8 +299,7 @@ namespace MTC_Adapter
{
// inizializzo list x parametri
listaDR = new List<DataRefItem<string, string>>();
listaDR.Add(new DataRefItem<string, string>(string.Format("VacAct_{0:00}_Count", i + 1), "0"));
VacuumAct[i] = new element(string.Format("VacAct_{0:00}", i + 1), string.Format("Attuatore vuoto {0}", i + 1), fonteDati.Random, listaDR);
VacuumAct[i] = new element(string.Format("VacAct_{0:00}", i + 1), listaDR);
}
// salvo oggetto
c.VacuumAct = VacuumAct;
@@ -284,8 +315,7 @@ namespace MTC_Adapter
{
// inizializzo list x parametri
listaDR = new List<DataRefItem<string, string>>();
listaDR.Add(new DataRefItem<string, string>(string.Format("Lubro_{0:00}_Num", i + 1), "0"));
Lubro[i] = new element(string.Format("Lubro_{0:00}", i + 1), string.Format("Lubrorefrigerante {0}", i + 1), fonteDati.Random, listaDR);
Lubro[i] = new element(string.Format("Lubro_{0:00}", i + 1), listaDR);
}
// salvo oggetto
c.Lubro = Lubro;
@@ -301,8 +331,7 @@ namespace MTC_Adapter
{
// inizializzo list x parametri
listaDR = new List<DataRefItem<string, string>>();
listaDR.Add(new DataRefItem<string, string>(string.Format("Cooler_{0:00}_Status", i + 1), "0"));
Cooler[i] = new element(string.Format("Cooler_{0:00}", i + 1), string.Format("Cooler {0}", i + 1), fonteDati.Random, listaDR);
Cooler[i] = new element(string.Format("Cooler_{0:00}", i + 1), listaDR);
}
// salvo oggetto
c.Cooler = Cooler;
@@ -318,8 +347,7 @@ namespace MTC_Adapter
{
// inizializzo list x parametri
listaDR = new List<DataRefItem<string, string>>();
listaDR.Add(new DataRefItem<string, string>(string.Format("Press_{0:00}_Value", i + 1), "0"));
Press[i] = new element(string.Format("Press_{0:00}", i + 1), string.Format("Pressostato {0}", i + 1), fonteDati.Random, listaDR);
Press[i] = new element(string.Format("Press_{0:00}", i + 1), listaDR);
}
// salvo oggetto
c.Press = Press;
@@ -335,8 +363,7 @@ namespace MTC_Adapter
{
// inizializzo list x parametri
listaDR = new List<DataRefItem<string, string>>();
listaDR.Add(new DataRefItem<string, string>(string.Format("Temp_{0:00}_Value", i + 1), "0"));
Temp[i] = new element(string.Format("Temp_{0:00}", i + 1), string.Format("Sonda Temperatura {0}", i + 1), fonteDati.Random, listaDR);
Temp[i] = new element(string.Format("Temp_{0:00}", i + 1), listaDR);
}
// salvo oggetto
c.Temp = Temp;
@@ -352,32 +379,7 @@ namespace MTC_Adapter
{
// inizializzo list x parametri
listaDR = new List<DataRefItem<string, string>>();
listaDR.Add(new DataRefItem<string, string>(string.Format("Path_{0:00}_FeedRate", i + 1), "0"));
listaDR.Add(new DataRefItem<string, string>(string.Format("Path_{0:00}_FeedOverr", i + 1), "0"));
listaDR.Add(new DataRefItem<string, string>(string.Format("Path_{0:00}_RapidOverr", i + 1), "0"));
listaDR.Add(new DataRefItem<string, string>(string.Format("Path_{0:00}_PosActX", i + 1), "0"));
listaDR.Add(new DataRefItem<string, string>(string.Format("Path_{0:00}_PosActY", i + 1), "0"));
listaDR.Add(new DataRefItem<string, string>(string.Format("Path_{0:00}_PosActZ", i + 1), "0"));
listaDR.Add(new DataRefItem<string, string>(string.Format("Path_{0:00}_PosActI", i + 1), "0"));
listaDR.Add(new DataRefItem<string, string>(string.Format("Path_{0:00}_PosActJ", i + 1), "0"));
listaDR.Add(new DataRefItem<string, string>(string.Format("Path_{0:00}_PosActK", i + 1), "0"));
listaDR.Add(new DataRefItem<string, string>(string.Format("Path_{0:00}_Type", i + 1), "0"));
// aggiunta x revisione 2016.05.05
listaDR.Add(new DataRefItem<string, string>(string.Format("Path_{0:00}_PartId", i + 1), "0"));
listaDR.Add(new DataRefItem<string, string>(string.Format("Path_{0:00}_PZ_TOT", i + 1), "0"));
listaDR.Add(new DataRefItem<string, string>(string.Format("Path_{0:00}_Cod_M", i + 1), "0"));
listaDR.Add(new DataRefItem<string, string>(string.Format("Path_{0:00}_Cod_S", i + 1), "0"));
listaDR.Add(new DataRefItem<string, string>(string.Format("Path_{0:00}_Cod_T", i + 1), "0"));
listaDR.Add(new DataRefItem<string, string>(string.Format("Path_{0:00}_RUN_MODE", i + 1), "0"));
listaDR.Add(new DataRefItem<string, string>(string.Format("Path_{0:00}_EXE_MODE", i + 1), "0"));
listaDR.Add(new DataRefItem<string, string>(string.Format("Path_{0:00}_CurrProg", i + 1), "0"));
listaDR.Add(new DataRefItem<string, string>(string.Format("Path_{0:00}_CurrProg_RowNum", i + 1), "0"));
listaDR.Add(new DataRefItem<string, string>(string.Format("Path_{0:00}_ActiveAxes", i + 1), "0"));
// aggiunto 2016.05.10
listaDR.Add(new DataRefItem<string, string>(string.Format("Path_{0:00}_CodG_Act", i + 1), "0"));
listaDR.Add(new DataRefItem<string, string>(string.Format("Path_{0:00}_SubMode", i + 1), "0"));
Path[i] = new element(string.Format("Path_{0:00}", i + 1), string.Format("Path num {0}", i + 1), fonteDati.Random, listaDR);
Path[i] = new element(string.Format("Path_{0:00}", i + 1), listaDR);
}
// salvo oggetto
c.Path = Path;
@@ -393,16 +395,7 @@ namespace MTC_Adapter
{
// inizializzo list x parametri
listaDR = new List<DataRefItem<string, string>>();
listaDR.Add(new DataRefItem<string, string>(string.Format("UnOp_{0:00}_ToolId", i + 1), "0"));
listaDR.Add(new DataRefItem<string, string>(string.Format("UnOp_{0:00}_NumCU", i + 1), "0"));
listaDR.Add(new DataRefItem<string, string>(string.Format("UnOp_{0:00}_Status", i + 1), "0"));
listaDR.Add(new DataRefItem<string, string>(string.Format("UnOp_{0:00}_VitaRes", i + 1), "0"));
listaDR.Add(new DataRefItem<string, string>(string.Format("UnOp_{0:00}_Speed", i + 1), "0"));
listaDR.Add(new DataRefItem<string, string>(string.Format("UnOp_{0:00}_SpeedOverr", i + 1), "0"));
listaDR.Add(new DataRefItem<string, string>(string.Format("UnOp_{0:00}_Load", i + 1), "0"));
listaDR.Add(new DataRefItem<string, string>(string.Format("UnOp_{0:00}_AccTime", i + 1), "0"));
listaDR.Add(new DataRefItem<string, string>(string.Format("UnOp_{0:00}_VitaResType", i + 1), "0"));
UnOp[i] = new element(string.Format("UnOp_{0:00}", i + 1), string.Format("Unita Op num {0}", i + 1), fonteDati.Random, listaDR);
UnOp[i] = new element(string.Format("UnOp_{0:00}", i + 1), listaDR);
}
// salvo oggetto
c.UnOp = UnOp;
@@ -418,22 +411,8 @@ namespace MTC_Adapter
{
// inizializzo list x parametri
listaDR = new List<DataRefItem<string, string>>();
listaDR.Add(new DataRefItem<string, string>(string.Format("Axis_{0:00}_MainProc", i + 1), "0"));
listaDR.Add(new DataRefItem<string, string>(string.Format("Axis_{0:00}_IsMast", i + 1), "0"));
listaDR.Add(new DataRefItem<string, string>(string.Format("Axis_{0:00}_MastId", i + 1), "0"));
listaDR.Add(new DataRefItem<string, string>(string.Format("Axis_{0:00}_Type", i + 1), "0"));
listaDR.Add(new DataRefItem<string, string>(string.Format("Axis_{0:00}_Dir", i + 1), "0"));
listaDR.Add(new DataRefItem<string, string>(string.Format("Axis_{0:00}_Load", i + 1), "0"));
listaDR.Add(new DataRefItem<string, string>(string.Format("Axis_{0:00}_PosAct", i + 1), "0"));
listaDR.Add(new DataRefItem<string, string>(string.Format("Axis_{0:00}_PosTgt", i + 1), "0"));
listaDR.Add(new DataRefItem<string, string>(string.Format("Axis_{0:00}_FeedAct", i + 1), "0"));
listaDR.Add(new DataRefItem<string, string>(string.Format("Axis_{0:00}_FeedOver", i + 1), "0"));
listaDR.Add(new DataRefItem<string, string>(string.Format("Axis_{0:00}_AccelAct", i + 1), "0"));
listaDR.Add(new DataRefItem<string, string>(string.Format("Axis_{0:00}_AccTime", i + 1), "0"));
listaDR.Add(new DataRefItem<string, string>(string.Format("Axis_{0:00}_Battery", i + 1), "0"));
listaDR.Add(new DataRefItem<string, string>(string.Format("Axis_{0:00}_DistDone", i + 1), "0"));
listaDR.Add(new DataRefItem<string, string>(string.Format("Axis_{0:00}_InvDDone", i + 1), "0"));
Axis[i] = new element(string.Format("Axis_{0:00}", i + 1), string.Format("Asse num {0}", i + 1), fonteDati.Random, listaDR);
listaDR.Add(new DataRefItem<string, string>(string.Format("Axis_{0:00}_Type", i + 1), "LINEAR"));
Axis[i] = new element(string.Format("Axis_{0:00}", i + 1), listaDR);
}
// salvo oggetto
c.Axis = Axis;
@@ -460,6 +439,7 @@ namespace MTC_Adapter
numPath = c2.nPath;
numUnOp = c2.nUnOp;
numAxis = c2.nAxis;
numMemArea = c2.nMemArea;
}
}
}
+1 -1
View File
@@ -9,7 +9,7 @@ if %1 == "CMS-SIEMENS" goto CMS
if %1 == "SCM-ESA" goto SCM
:Release
echo Release: uso
echo Release: non devo copiare nulla
goto END
:Debug
-22
View File
@@ -448,28 +448,6 @@ namespace MTC_Adapter
/// </summary>
SIEMENS
}
/// <summary>
/// Sorgente dati (per modalità recupero sw)
/// </summary>
public enum fonteDati
{
/// <summary>
/// dati recuperati da metodi/classi con HMI
/// </summary>
HMI,
/// <summary>
/// dati recuperati da recupero memorie PLC/CNC
/// </summary>
MemLoad,
/// <summary>
/// in questo caso dato fittizio/senza dati (x init)
/// </summary>
NoData,
/// <summary>
/// Dati generati random
/// </summary>
Random
}
public enum gatherCycle
{
+138 -10
View File
@@ -35,9 +35,14 @@ namespace SCMCncLib
private UInt16 WriteNumber;
private UInt16 VAreaByteSize;
private UInt16 EOKAreaByteSize;
private UInt16 ETKAreaByteSize;
private UInt16 ETKAreaByteSize;
private UInt16 AlarmByteSize;
private UInt16 IOT_ByteAreaByteSize;
private UInt16 IOT_WordAreaByteSize;
private UInt16 IOT_DWordAreaByteSize;
private UInt16 IOT_StringAreaByteSize;
private string SysLink = "";
private string DefCn = "";
@@ -56,13 +61,26 @@ namespace SCMCncLib
private string EOKAreaAddressName;
private TS_REG EOKAreaAddress;
private string ETKAreaAddressName;
private TS_REG ETKAreaAddress;
private TS_REG ETKAreaAddress;
private string PlcErrAreaAddressName;
private TS_REG PlcErrAreaAddress;
private string IOT_ByteAreaAddressName;
private TS_REG IOT_ByteAreaAddress;
private string IOT_WordAreaAddressName;
private TS_REG IOT_WordAreaAddress;
private string IOT_DWordAreaAddressName;
private TS_REG IOT_DWordAreaAddress;
private string IOT_StringAreaAddressName;
private TS_REG IOT_StringAreaAddress;
/// <summary>
/// Memorie a 4 byte (32 bit)
/// </summary>
@@ -94,6 +112,35 @@ namespace SCMCncLib
/// </summary>
public Byte[] PLC_MemoryAreaAllarmi;
#region memorie IOT NUOVE
/// <summary>
/// Area IOT_Byte: memoria temp di UINT di 4 byte (32 bit)
/// </summary>
public UInt32[] PLC_MemoryAreaIOT_Byte_tmp;
/// <summary>
/// Area IOT_Word: memoria temp di UINT di 4 byte (32 bit)
/// </summary>
public UInt32[] PLC_MemoryAreaIOT_Word_tmp;
/// <summary>
/// memorie a 1 byte (8 bit) x area IOT.Byte
/// </summary>
public Byte[] PLC_MemoryAreaIOT_Byte;
/// <summary>
/// memorie a 2 byte (16 bit) x area IOT.Word
/// </summary>
public UInt16[] PLC_MemoryAreaIOT_Word;
/// <summary>
/// memorie a 4 byte (32 bit) x area IOT.DWord
/// </summary>
public UInt32[] PLC_MemoryAreaIOT_DWord;
/// <summary>
/// memorie stringa x area IOT.String
/// </summary>
public string[] PLC_MemoryAreaIOT_String;
#endregion
// esa constants
#region ESA_PLC_CONSTANTS
private const UInt32 MAX_PATH = 256;
@@ -114,7 +161,7 @@ namespace SCMCncLib
[DllImport("KvCom3x", CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Ansi, EntryPoint = "_read_regbuffer@16")]
private static extern int read_regbuffer(ref TS_REG pReg, UInt16 Offset, UInt16 Count, [MarshalAs(UnmanagedType.LPArray)] UInt32[] pDst);
[DllImport("KvCom3x", CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Ansi, EntryPoint = "_write_regbuffer@16")]
private static extern int write_regbuffer(ref TS_REG pReg, UInt16 Offset, UInt16 Count, [MarshalAs(UnmanagedType.LPArray)] UInt32[] pSrc);
@@ -148,7 +195,7 @@ namespace SCMCncLib
/// Initializes a new instance of the <see cref="thdNcEsaGvKvara"/> class.
/// </summary>
/// <param name="fIni">The f ini.</param>
public thdNcEsaGvKvara(IniFile fIni) : base(fIni)
public thdNcEsaGvKvara(IniFile fIni, int IAS_Byte, int IAS_Word, int IAS_DWord, int IAS_String) : base(fIni)
{
DeviceType = NC_DEVICE_TYPE.ESAGV_KVARA;
@@ -171,14 +218,20 @@ namespace SCMCncLib
DefCn = tempS.ToString() + "\\defcn";
//StrCat(DefCn, "\\defcn");
ReadNumber = 265;
WriteNumber = 265;
VAreaByteSize = 32;
ETKAreaByteSize = 8;
ETKAreaByteSize = 8;
EOKAreaByteSize = 32; // era 14aggiunto sino a 31 x avere 91...
AlarmByteSize = 32;
// nuove aree: da init mi passa le dimensioni delle memorie
IOT_ByteAreaByteSize = Convert.ToUInt16(IAS_Byte);
IOT_WordAreaByteSize = Convert.ToUInt16(IAS_Word);
IOT_DWordAreaByteSize = Convert.ToUInt16(IAS_DWord);
IOT_StringAreaByteSize = Convert.ToUInt16(IAS_String);
CommandsAddressName = fIni.ReadString("NC", "CommandsAddress", "SIMREAD[0]");
EOKAreaAddressName = fIni.ReadString("NC", "EOKAreaAddress", "EOK");
ETKAreaAddressName = fIni.ReadString("NC", "ETKAreaAddress", "ETK");
@@ -186,6 +239,12 @@ namespace SCMCncLib
StatusAddressName = fIni.ReadString("NC", "StatusAddress", "SIMWRITE[0]");
VAreaAddressName = fIni.ReadString("NC", "VAreaAddress", "V");
// indirizzo area IOT...
IOT_ByteAreaAddressName = fIni.ReadString("NC", "IOT_AreaAddressByte", "IOT.BYTE");
IOT_WordAreaAddressName = fIni.ReadString("NC", "IOT_AreaAddressWord", "IOT.WORD");
IOT_DWordAreaAddressName = fIni.ReadString("NC", "IOT_AreaAddressDWord", "IOT.DWORD");
IOT_StringAreaAddressName = fIni.ReadString("NC", "IOT_AreaAddressString", "IOT");
/**************************************************
* Creazione buffers letture memoria
**************************************************/
@@ -208,6 +267,14 @@ namespace SCMCncLib
PLC_MemoryAreaEOK = new uint[EOKAreaByteSize];
PLC_MemoryAreaETK = new UInt32[ETKAreaByteSize];
// creo array x aree memoria IOT...
PLC_MemoryAreaIOT_Byte_tmp = new UInt32[(int)Math.Ceiling((decimal)IOT_ByteAreaByteSize / 4)];
PLC_MemoryAreaIOT_Word_tmp = new UInt32[(int)Math.Ceiling((decimal)IOT_WordAreaByteSize / 2)];
PLC_MemoryAreaIOT_Byte = new Byte[IOT_ByteAreaByteSize];
PLC_MemoryAreaIOT_Word = new UInt16[IOT_WordAreaByteSize];
PLC_MemoryAreaIOT_DWord = new UInt32[IOT_DWordAreaByteSize];
PLC_MemoryAreaIOT_String = new string[IOT_StringAreaByteSize];
if (!Connect())
Disconnect();
}
@@ -241,13 +308,64 @@ namespace SCMCncLib
Finished = true;
}
/// <summary>
/// Leggo il buffer di memorie BYTE
/// </summary>
public void ReadBufferByte()
{
// 2017.02: modifiche x nuova versione PLC: leggo intero buffer BYTE
iError = read_regbuffer(ref IOT_ByteAreaAddress, 0, IOT_ByteAreaByteSize, PLC_MemoryAreaIOT_Byte_tmp);
// ...e copio in array a byte...
try
{
Buffer.BlockCopy(PLC_MemoryAreaIOT_Byte_tmp, 0, PLC_MemoryAreaIOT_Byte, 0, IOT_ByteAreaByteSize);
}
catch
{ }
}
/// <summary>
/// Leggo il buffer di memorie WORD
/// </summary>
public void ReadBufferWord()
{
// 2017.02: modifiche x nuova versione PLC: leggo intero buffer WORD
iError = read_regbuffer(ref IOT_WordAreaAddress, 0, IOT_WordAreaByteSize, PLC_MemoryAreaIOT_Word_tmp);
try
{
Buffer.BlockCopy(PLC_MemoryAreaIOT_Word_tmp, 0, PLC_MemoryAreaIOT_Word, 0, IOT_WordAreaByteSize * 2);
}
catch
{ }
}
/// <summary>
/// Leggo il buffer di memorie DWORD
/// </summary>
public void ReadBufferDWord()
{
// leggo intero buffer DWORD
iError = read_regbuffer(ref IOT_DWordAreaAddress, 0, IOT_DWordAreaByteSize, PLC_MemoryAreaIOT_DWord);
}
/// <summary>
/// Leggo il buffer di memorie STRING
/// </summary>
public void ReadBufferString()
{
#if false
// leggo intero buffer STRING
iError = read_regbuffer(ref IOT_StringAreaAddress, 0, IOT_StringAreaByteSize, PLC_MemoryAreaIOT_String);
#endif
}
/// <summary>
/// Reads the buffer.
/// </summary>
public void ReadBuffer()
{
// leggo da posizione memorie V/allarmi come TS_REG
iError = read_regbuffer(ref PlcErrAreaAddress, 300, AlarmByteSize, PLC_MemAreaAlarm_tmp);
iError = read_regbuffer(ref PlcErrAreaAddress, 300, AlarmByteSize, PLC_MemAreaAlarm_tmp);
// lettura buffer dal CN
iError = read_regbuffer(ref StatusAddress, 0, ReadNumber, PLC_MemoryRead);
@@ -273,7 +391,7 @@ namespace SCMCncLib
catch
{ }
}
/// <summary>
/// Connects to device.
/// </summary>
@@ -295,6 +413,16 @@ namespace SCMCncLib
if (iError == 0)
iError = get_reg_by_name(VAreaAddressName, ref VAreaAddress);
if (iError == 0)
iError = get_reg_by_name(IOT_ByteAreaAddressName, ref IOT_ByteAreaAddress);
if (iError == 0)
iError = get_reg_by_name(IOT_WordAreaAddressName, ref IOT_WordAreaAddress);
if (iError == 0)
iError = get_reg_by_name(IOT_DWordAreaAddressName, ref IOT_DWordAreaAddress);
if (iError == 0)
iError = get_reg_by_name(IOT_StringAreaAddressName, ref IOT_StringAreaAddress);
Connected = (iError == 0);
return Connected;
}
+2 -2
View File
@@ -5,7 +5,7 @@
using System.Reflection;
[assembly: AssemblyVersion("1.3.9999.119")]
[assembly: AssemblyFileVersion("1.3.9999.119")]
[assembly: AssemblyVersion("1.4.9999.125")]
[assembly: AssemblyFileVersion("1.4.9999.125")]
[assembly: AssemblyCopyright("Steamware-CMS-SCM © 2015-2017")]
[assembly: AssemblyCompany("Steamware-CMS-SCM")]
+2 -2
View File
@@ -6,8 +6,8 @@
using System.Reflection;
[assembly: AssemblyVersion("1.3.9999.<#= this.RevisionNumber #>")]
[assembly: AssemblyFileVersion("1.3.9999.<#= this.RevisionNumber #>")]
[assembly: AssemblyVersion("1.4.9999.<#= this.RevisionNumber #>")]
[assembly: AssemblyFileVersion("1.4.9999.<#= this.RevisionNumber #>")]
[assembly: AssemblyCopyright("Steamware-CMS-SCM © 2015-<#= DateTime.Now.Year #>")]
[assembly: AssemblyCompany("Steamware-CMS-SCM")]
<#+