Getting better code - STL siemens step 7 s7-300

naturephoenix

Member
Join Date
Jan 2015
Location
Vienn
Posts
181
IS it possible to write this on a better way:


L #db_Num2
L 121
==I
JNB _02
CALL "CONT_C" , "DB_reg_igla1"
COM_RST :=M60.2
MAN_ON :=
PVPER_ON:=
P_SEL :=
I_SEL :=
INT_HOLD:=
I_ITL_ON:=
D_SEL :=
CYCLE :=
SP_INT :=
PV_IN :=
PV_PER :=
MAN :=
GAIN :=
TI :=
TD :=
TM_LAG :=
DEADB_W :=
LMN_HLM :=
LMN_LLM :=
PV_FAC :=
PV_OFF :=
LMN_FAC :=
LMN_OFF :=
I_ITLVAL:=
DISV :=
LMN :=
LMN_PER :=
QLMN_HLM:=
QLMN_LLM:=
LMN_P :=
LMN_I :=
LMN_D :=
PV :=
ER :=
JU _007

_02: L #db_Num2
L 122
==I
JNB _03

CALL "CONT_C" , DB122
COM_RST :=M60.2
MAN_ON :=
PVPER_ON:=
P_SEL :=
I_SEL :=
INT_HOLD:=
I_ITL_ON:=
D_SEL :=
CYCLE :=
SP_INT :=
PV_IN :=
PV_PER :=
MAN :=
GAIN :=
TI :=
TD :=
TM_LAG :=
DEADB_W :=
LMN_HLM :=
LMN_LLM :=
PV_FAC :=
PV_OFF :=
LMN_FAC :=
LMN_OFF :=
I_ITLVAL:=
DISV :=
LMN :=
LMN_PER :=
QLMN_HLM:=
QLMN_LLM:=
LMN_P :=
LMN_I :=
LMN_D :=
PV :=
ER :=
JU _007

_03: L #db_Num2
L 123
==I
JNB _04
CALL "CONT_C" , DB123
COM_RST :=M60.2
MAN_ON :=
PVPER_ON:=
P_SEL :=
I_SEL :=
INT_HOLD:=
I_ITL_ON:=
D_SEL :=
CYCLE :=
SP_INT :=
PV_IN :=
PV_PER :=
MAN :=
GAIN :=
TI :=
TD :=
TM_LAG :=
DEADB_W :=
LMN_HLM :=
LMN_LLM :=
PV_FAC :=
PV_OFF :=
LMN_FAC :=
LMN_OFF :=
I_ITLVAL:=
DISV :=
LMN :=
LMN_PER :=
QLMN_HLM:=
QLMN_LLM:=
LMN_P :=
LMN_I :=
LMN_D :=
PV :=
ER :=
JU _007

_04: L #db_Num2
L 124
==I
JNB _05
CALL "CONT_C" , DB124
COM_RST :=M60.2
MAN_ON :=
PVPER_ON:=
P_SEL :=
I_SEL :=
INT_HOLD:=
I_ITL_ON:=
D_SEL :=
CYCLE :=
SP_INT :=
PV_IN :=
PV_PER :=
MAN :=
GAIN :=
TI :=
TD :=
TM_LAG :=
DEADB_W :=
LMN_HLM :=
LMN_LLM :=
PV_FAC :=
PV_OFF :=
LMN_FAC :=
LMN_OFF :=
I_ITLVAL:=
DISV :=
LMN :=
LMN_PER :=
QLMN_HLM:=
QLMN_LLM:=
LMN_P :=
LMN_I :=
LMN_D :=
PV :=
ER :=
JU _007

_05: L #db_Num2
L 125
==I
JNB _06
CALL "CONT_C" , DB125
COM_RST :=M60.2
MAN_ON :=
PVPER_ON:=
P_SEL :=
I_SEL :=
INT_HOLD:=
I_ITL_ON:=
D_SEL :=
CYCLE :=
SP_INT :=
PV_IN :=
PV_PER :=
MAN :=
GAIN :=
TI :=
TD :=
TM_LAG :=
DEADB_W :=
LMN_HLM :=
LMN_LLM :=
PV_FAC :=
PV_OFF :=
LMN_FAC :=
LMN_OFF :=
I_ITLVAL:=
DISV :=
LMN :=
LMN_PER :=
QLMN_HLM:=
QLMN_LLM:=
LMN_P :=
LMN_I :=
LMN_D :=
PV :=
ER :=
JU _007

_06: L #db_Num2
L 126
==I
JNB _007
CALL "CONT_C" , DB126
COM_RST :=M60.2
MAN_ON :=
PVPER_ON:=
P_SEL :=
I_SEL :=
INT_HOLD:=
I_ITL_ON:=
D_SEL :=
CYCLE :=
SP_INT :=
PV_IN :=
PV_PER :=
MAN :=
GAIN :=
TI :=
TD :=
TM_LAG :=
DEADB_W :=
LMN_HLM :=
LMN_LLM :=
PV_FAC :=
PV_OFF :=
LMN_FAC :=
LMN_OFF :=
I_ITLVAL:=
DISV :=
LMN :=
LMN_PER :=
QLMN_HLM:=
QLMN_LLM:=
LMN_P :=
LMN_I :=
LMN_D :=
PV :=
ER :=

_007: NOP 0


Basically what i am doing is I am calling always
FB41, but with different Instance DB(DB121,DB122,DB123,DB124,DB125,DB126)

Appropriate DB number(121-126) is stored in variable #db_Num2
 
IS it possible to write this on a better way:


L #db_Num2
L 121
==I
JNB _02
CALL "CONT_C" , "DB_reg_igla1"
COM_RST :=M60.2
MAN_ON :=
PVPER_ON:=
P_SEL :=
I_SEL :=
INT_HOLD:=
I_ITL_ON:=
D_SEL :=
CYCLE :=
SP_INT :=
PV_IN :=
PV_PER :=
MAN :=
GAIN :=
TI :=
TD :=
TM_LAG :=
DEADB_W :=
LMN_HLM :=
LMN_LLM :=
PV_FAC :=
PV_OFF :=
LMN_FAC :=
LMN_OFF :=
I_ITLVAL:=
DISV :=
LMN :=
LMN_PER :=
QLMN_HLM:=
QLMN_LLM:=
LMN_P :=
LMN_I :=
LMN_D :=
PV :=
ER :=
JU _007

_02: L #db_Num2
L 122
==I
JNB _03



Appropriate DB number(121-126) is stored in variable #db_Num2

"DB_reg_igla1" = DB121
 
I can see from a purely academic perpective why you might want to multiplex the Instance DB but why not have 6 calls to FB41? Presumably you have 6 PID loops.

Nick
 
I solved that by using input parameter DB_Number.

IS it possible to here something like this:
CALL "CONT_C" , #DB_reg_igle
COM_RST := [AR1,P#0.0]???? this does not work, but it has to be dynamic
MAN_ON :="Param_reg_igle1".man_on
PVPER_ON:="Param_reg_igle1".pvper_on
P_SEL :="Param_reg_igle1".p_sel
I_SEL :="Param_reg_igle1".i_sel
INT_HOLD:="Param_reg_igle1".int_hold
I_ITL_ON:="Param_reg_igle1".i_itl_on
D_SEL :="Param_reg_igle1".d_sel
CYCLE :="Param_reg_igle1".cycle
SP_INT :="Param_reg_igle1".referenca
PV_IN :="Param_reg_igle1".polozaj
PV_PER :="Param_reg_igle1".pv_per
MAN :="Param_reg_igle1".man
GAIN :="Param_reg_igle1".gain
TI :=#Ti
TD :="Param_reg_igle1".td
TM_LAG :="Param_reg_igle1".tm_lag
DEADB_W :="Param_reg_igle1".deadb_w
LMN_HLM :="Param_reg_igle1".lmn_hlm
LMN_LLM :="Param_reg_igle1".lmn_llm
PV_FAC :="Param_reg_igle1".pv_fac
PV_OFF :="Param_reg_igle1".pv_off
LMN_FAC :="Param_reg_igle1".lmn_fac
LMN_OFF :="Param_reg_igle1".lmn_off
I_ITLVAL:="Param_reg_igle1".i_itlval
DISV :="Param_reg_igle1".disv
LMN :="Param_reg_igle1".izlaz
LMN_PER :=
QLMN_HLM:=
QLMN_LLM:=
LMN_P :=
LMN_I :=
LMN_D :=
PV :=
ER :=#temp_er
 

Similar Topics

iFix 5.8 Windows 7 Pro CLX PLC Customer, for some reason does not want to use a database. Wants instead tags on display will be direct OPC links...
Replies
3
Views
1,890
Hi how's it going. Was just wondering if someone could help me out. Recently one of the guys over on the LinuxCNC forums put me onto getting an...
Replies
15
Views
326
The application was working in Twincat 4022.16 Used VM for offline. recently changed the laptop and the getting the error with Message as below...
Replies
0
Views
84
We are using wincc scada WinCC system software V7.5 SP2 , connected to few plc . Past 3 weeks we getting this alarm continously when we checked...
Replies
0
Views
115
I am very, very new to PLCs. I only have experience with Picos, but I knew enough to save this from the dumpster. Apparently, everything on it is...
Replies
13
Views
711
Back
Top Bottom