Added Infofield

This commit is contained in:
2021-06-21 17:51:14 +02:00
parent f1d12fa39d
commit 0d93a3144c
5 changed files with 33 additions and 9 deletions

View File

@@ -9,6 +9,7 @@ TYPE
bReleasedAnimal : BOOL := FALSE; (*Tier freigegeben*)
uiAnimalNr : UINT := 0; (*Angeforderte Tiernummer*)
udEstimatedMilkammmount : UDINT; (*zu Erwartende Milchmenge [g]*)
sAnimalInfoField : STRING[25]; (*Informationsfeld aus Datenbank*)
enAnimalstate : gtyp_AnimalState; (*Tierstatus*)
enSeperationstate : gtyp_SeperationState; (*Seperationsstatus*)
enMPState : gtyp_MPState; (*Melkplatzstatus in Torsteuerung (Debuginfo)*)

View File

@@ -202,8 +202,8 @@ PROGRAM _CYCLIC
enTCP_Step_Connected:
//Empfang ausf<EFBFBD>hren
FUBs.TCP_Receive.ident := Status.udSocket;
FUBs.TCP_Receive.pData := ADR (TelegramRecv);
FUBs.TCP_Receive.datamax := SIZEOF (TelegramRecv);
FUBs.TCP_Receive.pData := ADR (TelegramRecvRaw);
FUBs.TCP_Receive.datamax := SIZEOF (TelegramRecvRaw);
FUBs.TCP_Receive.enable := TRUE;
//IF (Times.diTimeoutRecv > 25000000) THEN
@@ -238,11 +238,20 @@ PROGRAM _CYCLIC
ErrorCount.uiRecvSystemErr := ErrorCount.uiRecvSystemErr + 1;
ELSIF FUBs.TCP_Receive.status = ERR_OK THEN
//Daten erhalten
//Rohdaten auf erweitertes Telegramm umschreiben
TelegramRecv.uiArbFiled := TelegramRecvRaw.uiArbFiled;
brsmemcpy (ADR (TelegramRecv.sData), ADR (TelegramRecvRaw.sData), 8);
IF FUBs.TCP_Receive.recvlen = 0 THEN
//Telegram mit Laenge 0 erhalten - Socket wurde geschlossen - Verb neu aufbauen
ErrorCount.uiRecvdZeroLen := ErrorCount.uiRecvdZeroLen + 1;
enStepTCP := enTCP_Step_Close;
ELSIF (FUBs.TCP_Receive.recvlen = 10) OR (FUBs.TCP_Receive.recvlen = 12) THEN
ELSIF (FUBs.TCP_Receive.recvlen = 10) OR (FUBs.TCP_Receive.recvlen = 12) OR (FUBs.TCP_Receive.recvlen > 12) THEN
IF (FUBs.TCP_Receive.recvlen > 12) THEN
brsmemcpy (ADR (TelegramRecv.sInfo), ADR (TelegramRecvRaw.sData) + 8, (FUBs.TCP_Receive.recvlen - 12));
END_IF
brsmemset (ADR (TelegramRecvRaw.sData), 0, SIZEOF (TelegramRecvRaw.sData));
//Telegram erhalten
//Infotyp ermitteln
udTemp := 0;
@@ -590,6 +599,10 @@ PROGRAM _CYCLIC
ELSE
ErrorCount.uiAnimalState := ErrorCount.uiAnimalState + 1;
END_IF
//Infofeld auslesen
lPyInterface.In.sAnimalInfoField := TelegramRecv.sInfo;
TimesLatch.diSteptimeCOM := gdiSystemTime;
Status.bDataSent := FALSE;
Status.bDataReceived := FALSE;

View File

@@ -17,10 +17,11 @@ VAR
enRecvMsgInfoType1stCpy : typ_enInfoTyp; (*Infotyp des Empfangstelegrams Kopie*)
enRecvMsgInfoTypeCpy : typ_enInfoTyp; (*Infotyp des Empfangstelegrams Kopie*)
TelegramSend : typ_Telegram; (*Sendetelegram*)
TelegramRecv : typ_Telegram; (*Empfangstelegram*)
TelegramRecvUnexp : typ_Telegram; (*Empfangstelegram Unerwartet / Kopie*)
TelegramRecvCpy : typ_Telegram; (*Empfangstelegram Kopie*)
TelegramRecv1stCpy : typ_Telegram; (*Empfangstelegram Kopie*)
TelegramRecvRaw : typ_TelegramRecvRaw; (*Empfangstelegram Erweitert*)
TelegramRecv : typ_TelegramRecv; (*Empfangstelegram Erweitert*)
TelegramRecvUnexp : typ_TelegramRecv; (*Empfangstelegram Unerwartet / Kopie*)
TelegramRecvCpy : typ_TelegramRecv; (*Empfangstelegram Kopie*)
TelegramRecv1stCpy : typ_TelegramRecv; (*Empfangstelegram Kopie*)
IOStates : gtyp_PyInterfaceIOState; (*Lokale Kopie von IO States (Wird mit Entprellten Signalen <20>berlagert)*)
IOStatesLatch : gtyp_PyInterfaceIOState; (*Speiher f<>r Flankenwechsel erkennung*)
sTemp : STRING[8];

View File

@@ -57,10 +57,19 @@ TYPE
TOF_DataSent : TOF; (*Daten gesendet verz<72>gerung*)
TON_IOState : TON; (*IO Status Senden*)
END_STRUCT;
typ_Telegram : STRUCT
typ_Telegram : STRUCT (*Sendetelegram*)
uiArbFiled : UINT; (*Arbitration Field*)
sData : STRING[8]; (*Nutzdaten*)
END_STRUCT;
typ_TelegramRecvRaw : STRUCT (*Empfangstelegramm Rohdaten*)
uiArbFiled : UINT; (*Arbitration Field*)
sData : STRING[33]; (*Nutzdaten*)
END_STRUCT;
typ_TelegramRecv : STRUCT (*Empfangstelegramm*)
uiArbFiled : UINT; (*Arbitration Field*)
sData : STRING[8]; (*Nutzdaten*)
sInfo : STRING[25]; (*Nutzdaten 25 Info*)
END_STRUCT;
END_TYPE
(*//Schrittketten / Befehle / Bedingungen*)

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version="4.7.5.60 SP"?>
<?AutomationStudio Version="4.7.6.114 SP"?>
<Project Version="1.00.0" Edition="Standard" EditionComment="Standard" xmlns="http://br-automation.co.at/AS/Project">
<Communication>
<OnlineConfiguration Name="Lactor-Sim" DeviceType="TCPIP" DeviceParameters="/IF=tcpip /LOPO=11159 /SA=1" ConnectionParameters="/COMT=2500 /RT=1000 /AM=* /SDT=5 /DAIP=192.168.11.99 /REPO=11160 /ANSL=1 /PT=11169" Description="" />