PLCConfigExport
KTC har tagit fram ett verktyg för att utifrån en dat-fil (konfigurationsdata från Automate) kunna producera olika protokoll och listor. De typer av utdata som kan produceras är; Provningsprotokoll, Injusteringsprotokoll, Modbusadress-Lista, Tag-lista för Web Port, Tag-lista för SCADA (med Modbus).
Detta för att ge mer flexibilitet i användningen än vad det protokoll som kommer ut ifrån Automate ger.
Vi kallar verktyget PLCConfigExport.
Installation
Öppna zip-filen, packa upp innehållet i en katalog. Kör installationsprogrammet genom att starta setup.exe. Programmet finns sedan att hitta på startmenyn: Alla program -> KTC -> PLCConfigExport
Då det kommer ny version av databasen eller modbus-mappningen
Protokollgeneratorn behöver tillgång till samma databasfil som Automate använder, och till en uppdaterad modbus-mappning. För att uppgradera någon av dem, kopiera in den nya till samma mapp som exe-filen ligger i.
Databasfilen heter "SRDBase.mdb"
Modbus-mappningen heter "Modbus.csv"
För var en en av dem finns också ett versionsdokument som beskriver ändringar mellan de olika versionerna.
På den nedersta raden i användargränssnittet visas vilken nuvarande version av PLCConfigExport som körs samt vilken version av databasen SrdBase som används. För Modbus.csv ser man versionen på första raden om man öppnar filen. Kan läsas av excel eller i en vanlig texteditor (t ex Anteckningar).
Producera utdata
- Välj DAT-fil genom att klicka på ”Hitta” och bläddra fram till önskad in-data fil, alternativt skriv in sökvägen direkt.
- Välj mapp för ut-data, klicka på ”Välj” och bläddra fram till önskad mapp, alternativt skriv in sökvägen direkt.
- Välj format för ut-data genom att klicka på önskat format.
- Klicka på ”Kör” och vänta tills datan är producerad. Beroende på storlek på DAT-fil samt typ av format så tar körningen olika lång tid.
- Den önskade utdata-filen finns nu i mappen som har valts i steg 2.
Provningsprotokoll
Provningsprotokoll generera en Excel-fil med ett protokoll baserat på indata-filen. Ett exempel med ett utsnitt på hur den genererad data kan se ut finns i nedanstående figur.
Figuren visar hur ett provningsprotokoll kan se ut
Injusteringsprotokoll
Väljs injusteringsprotokoll så genereras en Excelfil baserat på innehållet i DAT-filen. Nedanstående figur visar hur ett sådant protokoll kan se ut.
Figuren visar ett exempel på ett injusteringsprotokoll
Modbus-Lista
Med detta alternativ markerat skapas ett Excel-dokument där en lista med alla Modbus-adresser länkas mot rätt SRD-objekt. I listan finns följande information:
- Adress
- Beskrivning
- Ram-text
- Datatyp
- R-W
- KTC-Objektsnamn
- Eventuell ytterligare information
Figuren visar ett utsnitt från en Modbus-lista
Taglista för Web Port
Detta alternativ skapar en tag-lista för Web Port. Listan innehåller SrdLink objekt och dessa länkas och grupperas till rätt typ av Web Port objekt automatiskt.
Device name
är det namn som används i Web Port för själva IO-enheten. KTC Prefix
fylls i för att skapa en lista för OPC. Listan som skapas kan importeras direkt till Web Port.
Ovanstående fönster visar de extra alternativ (KTC Prefix
och Device name
) som finns för Web Port taggar
Denna figur visar ett utsnitt av en genererad Web Port-lista
Taglista för Scada (med Modbus)
Denna lista fungerar på liknande sätt som listan för Web Port, men innehåller även två extra kolumner med Modbus-adress och modbus-skalning. Observera att denna lista inte kan importeras direkt till Web Port, utan är en generell lista.
Figuren visar en generell tag-lista för Scada
Konfiguration
Detta avsnitt går igenom hur Web Port- och Scada-listor kan special-konfigureras av användaren om så önskas.
För att göra PLCConfigExport mer konfigurerbart när det gäller tag-generering för WebPort och Scada, så finns en konfigurationsfil för ändamålet. Denna fil är en json-fil med namnet object.conf
och installeras som default under C:\Program Files\KTC\PLCConfigExport\JSON.
Mer om hur json-filer byggs upp kan man läsa om här
https://www.json.org/json-sv.html
Filen kan exempelvis redigeras med Notepad++. Ta gärna en kopia av original-filen innan ändringar görs, så är det lätt att återställa ifall formateringen blir fel.
** Observera! Om programmet om-installeras eller uppdateras raderas konfigurationsfilen och ersätts med standardfilen. Så säkerhetskopiera den egna konfigurationsfilen och spara den på ett annat ställe än i program-mappen. **
Den första inkapslingen i json-filen innehåller duc-typ. Under SRD5000 finns alla objekt som hör till 5000-serien. Under duc-typ 3000-serien finns objekt som hör till SRD3XXX, SRD2XXX och COM2XXX.
Därefter kommer objekten som hör till respektive serie, under "Objects"
.
{
"Name": "KTC Translate Lib",
"DucType":
{
"SRD5000":
{
"Objects":
{
...
}
},
"SRD3000":
{
"Objects" :
{
...
}
}
}
}
Objektets kategori
Varje objekt har alltid en default-klass som heter Normal
. Oftast är det denna man vill ändra på.
Då fler konfigurationer kan förekomma för vissa objekt kan olika klasser skapas med "Class"
tex för M-bus där det finns Vatten, Varmvatten, Kallvatten etc. Då kan varje specifik konfiguration få sina egna parameterar beroende på vilken typ av mätare som används (kallas kategori i dat-filen).
"Objects":
{
"MB" :
{
"Class":
{
"Normal":
{
"_E1" : "Energy",
"_ID" : "FlowReadout",
"_CNT" : "SecAddr",
"_PV3" : "CurrentHour",
"_PV4" : "CurrentDay",
"_PV5" : "CurrentMonth",
"_PV6" : "LastHour",
"_PV7" : "LastDay",
"_PV8" : "LastMonth",
"_CNT1" : "Value6",
"_E2" : "Value5",
"_GT41_PV1" : "Value3",
"_GT42_PV1" : "Value4"
},
"Vatten":
{
"_E1" : "FlowReadout",
"_CNT" : "SecAddr",
"_PV3" : "CurrentHour",
"_PV4" : "CurrentDay",
"_PV5" : "CurrentMonth",
"_PV6" : "LastHour",
"_PV7" : "LastDay",
"_PV8" : "LastMonth",
"_E2" : "Value2"
}, ...
I ovanstånde lista visas ett exempel på utdata med fyra MB-värden, MB01 med katergori EL
, MB02 med katergori Varmvatten
, MB03 med kategori EL
samt MB04 med katergori Värme
.
De olika konfigurationerna har sedan fått olika taggar genererade beroende på sin specifika kategori.
Lägga till taggar
För att lägga till ett nytt objekt skriver man enligt följande:
”Webport-Suffix” : ”KTC-Suffix”
Då kommer ändelserna matchas ihop automatiskt.
Observera, kommatecken skall användas om det är fler objekt i följd, men använd inte kommatecken på det sista objektet i serien.
"MT" :
{
"Class":
{
"Normal":
{
"_SP" : "Clock",
"_SP1" : "Duration",
"_SP2" : "Interval",
"_V" : "Value"
}
}
}, ...
Utökade taggar
För att kunna lägga till fler objekt till samma huvudobjekt så måste en array skapas. Samtliga typer som beskrivs nedan är skapade som arrayer.
Formatet blir då ”WebPort-Suffix” : [”objekt1”, ”objekt2”]
Intern referens
"Reference"
talar om för programmet att detta är en referensvariabel och att platsen input pekar på ett annat objekt där
"Value"
skall läsas. Då kommer det refererade objektet hamna på positionen i stället för det egna objektets parameter.
Nedanstående visar ett _PV objekt till en RL-regulator där innehållet på RLXX.Input inläses.
"_PV" : ["Input", "Reference", "Value"]
Extern referens
Om en regulator tex har en extern referens som skall med under samma Web Port-objekt, så används ”ExternalReference”
, eventuellt följt av ”ControlDeviation”
om den externa referensen är en regleravvikelse. Då söks alla externa objekt igenom som har ett signalval gjort till aktuellt objekt, där signalvalet innehåller objektsnamnet och 'rf' eller 'df' som ändelse.
"_LAL": ["LowAlarm", "ExternalReference", "ControlDeviation"]
I/O för ingång eller utgång
För att skapa en in- eller utgång så används "I/O"
följt av "Input"
eller "Output"
beroende på vad för typ av IO det är. In- eller utgången på objektet kommer då endast att skapas beroende på om objektet uppfyller de villkor som finns för att klassas som in- eller utgång.
Exempel på ett DV objekt med in och utgångar:
"DV" :
{
"Class":
{
"Normal":
{
"_AL" : ["AlarmActive", "I/O", "Input", "PrioAlarmOption"],
"_AD" : ["AlarmDelay", "I/O", "Input"],
"_V" : ["Value", "I/O", "Input"],
"_CMD" : ["Value", "I/O", "Output"],
"_M" : ["Mode", "I/O", "Output"],
"_MCMD" : ["ManualMode", "I/O", "Output"]
}
}
}
Calculation (I/O)
Om en tagg markeras med "Calculation"
, så kommer inte det värdet tas med om det refererar till en DV.
"DQ" :
{
"Class":
{
"Normal":
{
"_V3" : ["Value", "I/O", "Calculation"],
"_M" : ["Mode", "I/O", "Calculation"],
"_MCMD" : ["ManualMode", "I/O", "Calculation"]
}
}
}
Alarm prioritet
Om en tagg markeras med "PrioAlarmOption"
, så kommer taggens alarmprioritet översättas till Web Port-format och skrivas ut i tag-listan (förutsatt att taggen har en prioritet aktiverad).
"_AL": ["AlarmStatus", "PrioAlarmOption"]
Beskrivningstext
Om en egen beskrivningstext önskas på en tagg, kan detta läggas till med ”Desc: Önskad beskrivningstext”
Denna parameter skall läggas till sist av alla parametrar.
"_P" : ["Pband", "Desc: Egen beskrivningstext görs så här..."]