Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance. Project price only 1 $
You can buy this project and download/modify it how often you want.
## -----------------------------------------------
## Dieses Script definiert ein Accessory, welches 2 Macros zum Schalten von Weichen-Doppelspulenantrieben startet.
## Die Macros steuern 2 Powerausgänge an, welche einen MTB-Antrieb wie einen Doppelspulenantrieb schalten.
## Der Antrieb arbeitet mit Endabschaltung. Es erfolgt eine Prüfung der Stellung des Antriebes (!!!!!), nicht der Weichenzunge.
## Sowohl die Makros als auch die ports müssen aufeinanderfolgend sein.
## Neben den Porteigendschaften werden auch für die erforderlichen CV's die richtigen Werte eingestellt.
## Mit den Variblen $CVoffset und $CVs_perPort wird als erste CV des ports 00 389 festgelegt. Ausserdem werden je port 3 CV's
## angenommen.
##
## history: 2017-05-26 D.T. erste Version
##
## -----------------------------------------------
## only for OneControl because of the CV offset for the power ports
##require(vid="13", pid="117,140,141,142,122,143,144,145")
##requireVersion(min=2.0.0, max=3.0.0)
## -------------- 1. Select Target
##application(text:de="Weichenantrieb (MTB-Antrieb) an OneControl FW 2.x", text:en="Turnout (double coil as MTB-drive) at OneControl FW 2.x", text:nl="Wisselaandrijving dmv MTB wisselmotor op de OneControl FW 2.x")
##instruction(text:de="Konfiguration eines MTB-Weichenantriebes (Doppelspulen) an der OneControl Es werden alle Porteigenschaften und die erforderlichen CV's eingestellt.", text:en="Configuration of a MTB-Turnout (double coil) at the OneControl")
##
##input($accessoryName:string, text:de="Bezeichnung der Weiche: ", text:en="Name of the turnout: ", default="W")
##input($my_accessory:accessory, text:de="Nummer des zu erzeugenden Accessory", text:en="Number of the Accessory", default=0)
##input($macroStraight:macro, text:de="Nummer des ersten Macros (Abzweig)", text:en="Number of the first macro (branch)", default=0)
##input($switchPort0:switch, text:de="Nummer des ersten Powerausgangs", text:en="Number of the first power output", default=0)
##input($prevent_replace_labels:boolean, text:de="Keine Namen für Accessory, Makros, Ports ersetzen", text:en="Prevent replace labels for accessory, macro and ports", default=false)
## check if version is lower than 3
#set($Integer = 0)
#set($version_major = 0)
#set($version_sub = 0)
#set($version_run = 0)
#set($version_string="${node_firmware_version}")
#set($version_array = $version_string.split("\."))
#if($version_array.size() == 3)
#set($version_major = $Integer.parseInt($version_array[0]))
#set($version_sub = $Integer.parseInt($version_array[1]))
#set($version_run = $Integer.parseInt($version_array[2]))
#end
#if ($version_major > 2)
#if ($user_lang == "de")
$exceptionThrower.throwUserDefined("Maximale unterstützte Firmware-Version ist 2.x")
#else
$exceptionThrower.throwUserDefined("Maximum supported firmware version is 2.x")
#end
#end
## -- prepare some variables --
#set($switchPort1 = $switchPort0 + 1)
#set($macroBranch = $macroStraight + 1)
#set($pairPortLow = $switchPort0 - $node_servo_count)
#set($pairPortHigh = $switchPort1 - $node_servo_count)
#set($CVs_perPort = 3)
#set($CVoffset = 389)
#set($CV0 = $CVoffset + $CVs_perPort * $pairPortLow)
#set($CV1 = $CV0 + 1)
#set($CV2 = $CV0 + 2)
#set($CV3 = $CV0 + 3)
#set($CV4 = $CV0 + 4)
#set($CV5 = $CV0 + 5)
## -- prepare names of ports --
#######################################
## Setzt label, wenn ${prevent_replace_labels} NICHT true
#if (!${prevent_replace_labels})
##
## Set label of ports
set switch ${switchPort0} name="W_${accessoryName}_gerade"
set switch ${switchPort1} name="W_${accessoryName}_Abzweig"
## Set label of macros
set macro ${macroStraight} name="W_${accessoryName}_gerade"
set macro ${macroBranch} name="W_${accessoryName}_Abzweig"
## Set label of accessory
set accessory ${my_accessory} name="W_${accessoryName}"
#end
#######################################
## Change CV's
## Beim flachen portmodell stehen die Servoports am Anfang
## Bei der Doppelspulen-CV muss die Portnummer 0..15 eingetragen werden!
set CV $CV0 11
set CV $CV1 100
set CV $CV2 $pairPortHigh
set CV $CV3 11
set CV $CV4 100
set CV $CV5 $pairPortLow
## Macro Weiche gerade
##
select macro ${macroStraight}
## macro repeats once
config macro repeat=1 slowdown=1
## stop the other macro
add step ptype=macro action=stop number=${macroBranch}
## add the steps to switch the ports
add step ptype=switch action=off number=${switchPort1}
add step ptype=delay delay=10
add step ptype=switch action=on number=${switchPort0}
add step ptype=switch action=off delay=100 number=${switchPort0}
add step ptype=delay delay=10
## Macro Weiche abzweig
##
select macro ${macroBranch}
## macro repeats once
config macro repeat=1 slowdown=1
## stop the other macro
add step ptype=macro action=stop number=${macroStraight}
## add the steps to switch the ports
add step ptype=switch action=off number=${switchPort0}
add step ptype=delay delay=10
add step ptype=switch action=on number=${switchPort1}
add step ptype=switch action=off delay=100 number=${switchPort1}
add step ptype=delay delay=10
## Define Accessory
select accessory ${my_accessory}
config accessory startup none
add aspect 0 macronumber=${macroBranch}
add aspect 1 macronumber=${macroStraight}