Here is my last script for importing alarm tags and texts from Siemens S7 PLC to Ignition.
import xml.etree.ElementTree as ET
import locale
decimalPoint=locale.localeconv()['decimal_point']
thousandsSep=locale.localeconv()['thousands_sep']
#print decimalPoint
#print thousandsSep
OPCServer='Ignition OPC-UA Server'
deviceName='[s7_1500]'
alarmFolderName='Mora1/Alarms'
pathIn=system.file.openFile('csv')
if pathIn != None:
txt = system.gui.inputBox("OPC Server:", OPCServer)
if txt != None:
OPCServer=txt
txt = system.gui.inputBox("Device Name:", deviceName)
if txt != None:
deviceName=txt
txt = system.gui.inputBox("Alarm Folder Name:", alarmFolderName)
if txt != None:
alarmFolderName=txt
fileIn=open(pathIn)
xx = 0
for line in fileIn:
xx += 1 #for numbering the alarms, so that they are sequenced
bitname=line[line.find(';')-7:7].strip().replace(' ','') #for adding at the end of alarm text
#print bitname
bit=line[line.find(';')-7:7].strip().replace('M ','MX')
tagnametemp=line[line.find(';')-7:7].strip().replace('.','_')
#print tagnametemp
tagname=tagnametemp.replace(' ','')
#print bit
#print tagname
alarmtext = str(xx) + ". " + line[line.find(';')+1:].strip() + " (" + bitname + ")"
print alarmtext
#alarmConfig={"Alarm 1":[["name", "Value", "Alarm 1"], ["setpointA","Value", 1.0], ["ackMode", "Value", 1]]}
system.tag.addTag(parentPath=alarmFolderName, name=tagname, tagType="OPC", dataType="Boolean", attributes={"OPCServer":OPCServer, "OPCItemPath":deviceName+bit}, alarmConfig={alarmtext:[["name", "Value", alarmtext], ["setpointA","Value", 1.0], ["ackMode", "Value", 1]]})
fileIn.close()
I run this in Script console in Designer.
I’m sure that this script will not fit your needs but it’ll give you an idea how ‘easy’ this can be done… just change it to suit your csv file…
And this is the format of my .CSV file:
M 400.0;(M400.0) Napaka transport TR28->TR30
M 400.1;(M400.1) Napaka transport TR30->TR31
M 400.2;(M400.2) Napaka transport TR31->TR31A
M 400.3;(M400.3) Napaka transport TR31A->TR31B
M 400.4;(M400.4) Napaka transport TR31B->TR33
M 400.5;(M400.5) Napaka rezerva
M 400.6;(M400.6) Napaka transport TR33->TR34
M 400.7;(M400.7) Napaka transport TR34->TR35
M 401.0;(M401.0) Napaka transport TR35->TR36
M 401.1;(M401.1) Napaka transport TR36->TR37
M 401.2;(M401.2) Napaka transport TR37->TR38
M 401.3;(M401.3) Napaka transport TR38->TR39
M 401.4;(M401.4) Napaka transport TR39->TR40
M 401.5;(M401.5) Napaka transport TR40->TR41
M 401.6;(M401.6) Napaka transport TR41->TR42
M 401.7;(M401.7) Napaka transport TR42->TR43
M 402.0;(M402.0) Napaka transport TR43->TR44
M 402.1;(M402.1) Napaka transport TR44->TR45
M 402.2;(M402.2) Napaka transport TR45->TR46
M 402.3;(M402.3) Napaka transport TR46->TR47
M 402.4;(M402.4) Napaka transport TR47->TR48
M 402.5;(M402.5) Napaka transport TR48->TR49
M 402.6;(M402.6) Napaka transport TR49->TR50
M 402.7;(M402.7) Napaka transport TR50->TR51
M 403.0;(M403.0) Napaka transport TR51->TR52
I always prepare csv file in Excel… Now, with TIA portal you can just copy and paste from tags in TIA to Excel.