COmpletata prima revisione sw x RobotService

This commit is contained in:
Samuele Locatelli
2021-09-23 19:06:39 +02:00
parent 826553d245
commit 419e13a82f
4 changed files with 144 additions and 56 deletions
+67
View File
@@ -0,0 +1,67 @@
;Configurazione IOB-WIN
[IOB]
;Macchina transfer COSMAP per Donati
CNCTYPE=SIEMENS_ROBOTSERVICE
PING_MS_TIMEOUT=500
[MACHINE]
VENDOR=RobotService
MODEL=SMER12
[CNC]
IP=192.168.51.138
CPUTYPE=S71500
RACK=0
SLOT=0
[SERVER]
MPIP=http://192.168.51.79
MPURL=/MP/IO
CMDBASE=/IOB/input/
CMDFLOG=/IOB/flog/
CMDALIVE=/IOB
CMDENABLED=/IOB/enabled/
CMDADV1=?valore=
CMDREBO=/sendReboot.aspx?idxMacchina=
[MEMORY]
ADDR_READ=DB15.DBB0
ADDR_WRITE=DB14.DBB0
SIZE_READ=10
SIZE_WRITE=517
[BLINK]
;MAX_COUNTER_BLINK = 30
MAX_COUNTER_BLINK = 15
;bit0 = 0
;bit1 = 0
;bit2 = 1
;bit3 = 1
;bit4 = 1
;bit5 = 0
;bit6 = 0
;bit7 = 0
BLINK_FILT=0
;BLINK_FILT=28
[OPTPAR]
;PZCOUNT_MODE=STD.[PAR/MEM].info|BIT.indice
PZCOUNT_MODE=STD.DB15.DBDW2
DISABLE_PZCOUNT=FALSE
ENABLE_SEND_PZC_BLOCK=TRUE
MIN_SEND_PZC_BLOCK=0
MAX_SEND_PZC_BLOCK=100
; gestione custom timer
timerIntMs=30
; GEST DATI DYN
ENABLE_DYN_DATA=TRUE
FORCE_DYN_DATA=TRUE
; gestione scrittura string/char[]: true = string / false = char[]
WRITE_PRE=TRUE
; conf parametri memoria READ/WRITE
PARAM_CONF=1033.json
[BRANCH]
NAME=master
+52
View File
@@ -0,0 +1,52 @@
{
"mMapWrite": {
"setComm": {
"name": "setComm",
"description": "Commessa",
"tipoMem": "String",
"memAddr": "DB14.DBB0",
"index": 0,
"size": 50
},
"setArt": {
"name": "setArt",
"description": "Articolo",
"tipoMem": "String",
"memAddr": "DB14.DBB256",
"index": 256,
"size": 50
},
"setPzComm": {
"name": "setPzComm",
"description": "Qty",
"memAddr": "DB14.DBB512",
"tipoMem": "DInt",
"index": 512,
"size": 4
}
},
"mMapRead": {
"Contatore01": {
"name": "PezziFineCiclo",
"description": "Mancanti programmati",
"memAddr": "DB15.DBB6",
"tipoMem": "DInt",
"index": 6,
"size": 4,
"func": "MAX",
"period": 60,
"factor": 1
},
"ContatoreParziale": {
"name": "ContaPezzi",
"description": "Contapezzi MES DBB2",
"memAddr": "DB15.DBB2",
"tipoMem": "DInt",
"index": 2,
"size": 4,
"func": "MAX",
"period": 60,
"factor": 1
}
}
}
+7
View File
@@ -178,6 +178,7 @@
<Compile Include="IobOpcUaEwon.cs" />
<Compile Include="IobSiemensAt2001.cs" />
<Compile Include="IobSiemensComeca.cs" />
<Compile Include="IobSiemensRobotService.cs" />
<Compile Include="IobSiemensCosmap.cs" />
<Compile Include="IobSiemensSimec.cs" />
<Compile Include="IobSiemensLasco.cs" />
@@ -223,6 +224,12 @@
</Compile>
<Compile Include="UAClient.cs" />
<Compile Include="utils.cs" />
<None Include="DATA\CONF\1033.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="DATA\CONF\1033.ini">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="DATA\CONF\IobOpcUaClient.Config.xml">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
+18 -56
View File
@@ -76,66 +76,28 @@ namespace IOB_WIN_NEXT
* B2: pzCount
* B3: allarme
* B4: manuale
* B5: emergenza (1=attiva/premuta, 0=armed)
* B5: MagOutPieno
* B6: MagInVuoto
*
----------------------------------------------------- */
bool fatto = false;
ushort currStatus = 0;
ushort allarme = 0;
ushort valW = 0;
byte mainData = RawInput[0];
var MemInt = new byte[2];
// recupero
//fatto = S7ReadBB(ref MemInt, "DB6.DBW204", 2);
//valW = S7.Net.Types.Word.FromByteArray(MemInt.ToArray());
//var testalW = S7.Net.Types.Word.FromByteArray(RawInput.Skip(204).Take(2).ToArray());
currStatus = S7.Net.Types.Word.FromByteArray(RawInput.Skip(204).Take(2).ToArray());
//fatto = S7ReadBB(ref MemInt, "DB6.DBW206", 2);
//valW = S7.Net.Types.Word.FromByteArray(MemInt.ToArray());
//allarme = valW;
allarme = S7.Net.Types.Word.FromByteArray(RawInput.Skip(206).Take(2).ToArray());
int byteSignals = 0;
// copio il primo byte
int byteSignals = RawInput[0];
// bit 0 (poweron) imposto a 1 SE connected...
if (currPLC.IsConnected)
{
byteSignals += (1 << 0);
}
// processo dagli stati + gravi...
if (allarme > 0)
{
byteSignals += (1 << 3);
}
switch (currStatus)
{
case 1:
byteSignals += (1 << 1);
break;
case 2:
byteSignals += (1 << 4);
break;
case 3:
byteSignals += (1 << 5);
break;
default:
break;
}
// salvo!
B_input = byteSignals;
// log opzionale!
if (verboseLog)
{
lgInfo($"Trasformazione dati: Status:{currStatus} | alarm:{allarme} --> B_input: {B_input}");
lgInfo($"Trasformazione dati: B0: {mainData} --> B_input: {B_input}");
}
}
@@ -216,24 +178,24 @@ namespace IOB_WIN_NEXT
break;
case taskType.forceResetPzCount:
// processo scrittura BIT su DB6.DBDW216
MemBlock = new byte[4];
MemBlock = S7.Net.Types.DInt.ToByteArray(1);
memAddrWrite = "DB6.DBDW216";
// processo scrittura BIT su DB6.DBB516
MemBlock = new byte[1];
MemBlock = S7.Net.Types.Byte.ToByteArray(1);
memAddrWrite = "DB14.DBB516";
break;
case taskType.startSetup:
// processo scrittura BIT su DB6.DBDW216
MemBlock = new byte[4];
MemBlock = S7.Net.Types.DInt.ToByteArray(1);
memAddrWrite = "DB6.DBDW216";
// processo scrittura BIT su DB6.DBB516
MemBlock = new byte[1];
MemBlock = S7.Net.Types.Byte.ToByteArray(1);
memAddrWrite = "DB14.DBB516";
break;
case taskType.stopSetup:
// processo scrittura BIT su DB6.DBDW216
MemBlock = new byte[4];
MemBlock = S7.Net.Types.DInt.ToByteArray(0);
memAddrWrite = "DB6.DBDW216";
// processo scrittura BIT su DB6.DBB516
MemBlock = new byte[1];
MemBlock = S7.Net.Types.Byte.ToByteArray(0);
memAddrWrite = "DB14.DBB516";
break;
case taskType.setParameter: