Мониторинг обменных курсов валют
18c0693f

IL


IL:

LD

N

,

ST

N

S

R

BOO

BOO

TRUE

FALSE

AND

&

OR

XOR

N (

N (

N (

N (

BOO

BOO

BOO

BOO

ADD

SUB

MUL

DIV

(

(

(

(

,

,

,

,

GT

GE

EQ

LE

LT

NE

(

(

(

(

(

(

,

,

,

,

,

,

: >

: >=

: =

: <=

: <

: <>

CAL

JMP

RET

C N

C N

C N

)

, IL, , .

LD

:

: N

: , ,

:

(* LD *)

LDex: LD false (* := FALSE boolean constant *)

LD true (* := TRUE boolean constant *)

LD 123 (* := integer constant *)

LD 123.1 (* := real constant *)


LD t#3ms (* := time constant *)

LD boo_var1 (* := boolean variable *)

LD ana_var1 (* := analog variable *)

LD tmr_var1 (* := timer variable *)

LDN boo_var2 (* := NOT ( boolean variable ) *)

ST

:



: N

:

:

(* ST *)

STboo: LD false

ST boo_var1 (* boo_var1 := FALSE *)

STN boo_var2 (* boo_var2 := TRUE *)

STana: LD 123

ST ana_var1 (* ana_var1 := 123 *)

STtmr: LD t#12s

ST tmr_var1 (* tmr_var1 := t#12s *)

S

: TRUE , TRUE. , FALSE. .

: ()

:

:

(* S *)

SETex: LD true (* := TRUE *)

S boo_var1 (* boo_var1 := TRUE *)

(* *)

LD false (* := FALSE *)



S boo_var1 (* - boo_var1 *)

R

: FALSE TRUE. FALSE. .

: ()

:

:

(* R *)

RESETex: LD true (* := TRUE *)

R boo_var1 (* boo_var1 := FALSE *)

(* *)

ST boo_var2 (* boo_var2 := TRUE *)

LD false (* := FALSE *)

R boo_var1 (* - boo_var1 *)

JMP

:

: C N

: IL

:

(* (0 1 2) *)

(* 3 . " 0" *)

(* JMPC *)

JMPex: LD selector (* selector is 0 or 1 or 2 *)

BOO (* boolean *)

JMPC test1 (* if selector = 0 then *)

LD true

ST bo0 (* bo0 := true *)

JMP JMPend (* *)



test1: LD selector

SUB 1 (* selector: 0 1 *)

BOO (* boolean *)

JMPC test2 (* if selector = 0 then *)

LD true

ST bo1 (* bo1 := true *)

JMP JMPend (* *)

test2: LD true (* *)

ST bo2 (* bo2 := true *)

JMP end: (* IL *)

RET

: . IL - , .

: C N

: ()

:

(* (0 1 2) *)

(* 3 . " 0" *)

(* the JMPC operator *)

JMPex: LD selector (* selector 0 1 2 *)

BOO (* boolean *)

JMPC test1 (* if selector = 0 then *)

LD true

ST bo0 (* bo0 := true *)

RET (* end - return 0 *)

(* selector *)

test1: LD selector



SUB 1 (* selector 0 1 *)

BOO (* boolean *)

JMPC test2 (* if selector = 0 then *)

LD true

ST bo1 (* bo1 := true *)

LD 1 (* selector *)

RET (* end - return 1 *)

(* *)

test2: RETNC (* selector *)

(* *)

LD true

ST bo2 (* bo2 := true *)

LD 2 (* selector *)

(* - 2 *)

)

: . (

: ()

: ()

:

(* : *)

(* res := a1 + (a2 * (a3 - a4) * a5) + a6; *)

Delayed: LD a1 (* result := a1; *)

ADD( a2 (* ADD - result := a2; *)

MUL( a3 (* MUL - result := a3; *)

SUB a4 (* result := a3 - a4; *)

) (* . MUL-result:=a2*(a3-a4); *)

MUL a5 (* result := a2 * (a3 - a4) * a5; *)



) (* ADD *)

(* result := a1 + (a2 * (a3 - a4) * a5); *)

ADD a6 (* result := a1 + (a2 * (a3 - a4) * a5) + a6; *)

ST res (* . res *)



( IL, ST, LD, FBD C) IL, .

: - IL

: ()

: .

:

(* : *)

Main: LD bi0

SUBPRO bi1,bi2 (* *)

ST result (* result := *)

GT vmax (* *)

RETC (* *)

LD result

MUL 1000 (* *)

TMR (* *)

ST tmval (* *)

(* 'SUBPRO' : *)

(* : in0, in1, in2 - *)

LD in2



ANA (* result = ana (in2); *)

MUL 2 (* result := 2*ana (in2); *)

ST temporary (* temporary := result *)

LD in1

ANA

ADD temporary (* result := 2*ana (in2) + ana (in1); *)

MUL 2 (* result := 4*ana (in2) + 2*ana (in1); *)

ST temporary (* temporary := result *)

LD in0

ANA

ADD temporary (* result := 4*ana (in2) + 2*ana (in1)+ana (in0); *)

ST SUBPRO (* *)

: CAL


:

: C N

: . LD/ST . .



1:

(* SR : SR1 - SR *)

LD auto_mode

AND start_cmd

ST SR1.set1

LD stop_cmd

ST SR1.reset

CAL SR1

LD SR1.Q1

ST command

(* FBD : *)



2

(* , R_TRIG1 - R_TRIG CTU1 - CTU*)

LD command

ST R_TRIG1.clk

CAL R_TRIG1

LD R_TRIG1.Q

ST CTU1.cu

LDN auto_mode

ST CTU1.reset

LD 100

ST CTU1.pv

CAL CTU1

LD CTU1.Q

ST overflow

LD CTU1.cv

ST result

(* FBD : *)







Самый выгодный курс обмена валюты