2015-12-22 59 views
3

我試圖通過編程學習博世/力士樂MLC。我寫了這個序列,但我不確定是否有更好的方法來做事。PLC:如果然後內部功能塊

僞代碼將是這個樣子:

wRunningCount=300 
wStandstillCount=150 
wCount 
zeroSpeed 
IF zeroSpeed THEN 
    wCount=wStandstillCount 
ELSE 
    wCount=wRunningCount 
FI 

但我想這個功能移動到功能塊。 (已經有將接收wCount一個TON)

現在我有:

    __MOVE____ 
     zeroSpeed-|EN ENO|- 
wStandStillCount-|_________|-wCount 


        __MOVE___ 
     zeroSpeed-o|EN ENO|- 
    wRunningCount-|_________|-wCount 

有一些更好的方式來做到這一點?

+0

你的僞代碼有什麼問題?爲什麼不使用看起來幾乎一樣的結構化文本? –

回答

1

取決於您希望如何初始化變量,你可以做到這一點

enter image description here

否則沒有更好的辦法來做到這一點,那麼你現在是正確的。

0

爲什麼你不能在ST中使用ton塊?剩下的代碼看起來很不錯。

TON_0(enable:= TRUE,PT:= T#1s);

IF TON_0.Q THEN //如果計時器完成

//do stuff 

TON_0(enable:=FALSE); //reset timer 

END_IF

0

大多數61131周的實施將有一個 「選擇」 塊應該這樣做相當漂亮...

  __SEL__ 
zerospeed |G  Q|wCount 
      |  | 
wrunning |IN0 | 
      |  | 
wstandstill|IN1 | 
      |_______| 
相關問題