2021年1月25日 星期一

[PLC] Siemens FB 的變數

西門子 PLC, FB 的變數, 除了 Input, Output, InOut, 還有 Static, Temp, Constant
Temp 型的變數, 放在 FB 的 local stack 內, PLC scan 週期結束後, 會自動消失, 不會保留



 

 

 

 

 

 

 

 

 

 

Global DB 只有 Static 型變數


 


2020年12月23日 星期三

[PLC] For Next 測試

傳統的程式語言中,For ... Next 是基本的迴圈敘述,在 PLC 中則屬於應用指令。底下做一個簡單測試,計算從 1 加到 10 是多少。

PLC 跟傳統語言不一樣的地方,由於每一個  statement 都必須有執行條件,因此 FOR 迴圈裡面的每一個 statement 前面放了 LD X1 指令,以便用按鍵來觀察計算結果。

 


 

 

2020年12月17日 星期四

[PLC] FX3U-485-BD 簡單 modbus 測試

使用價格較便宜的 FX3U-485-BD 發送 modbus 封包至遠端繼電器 (9600, E81, modbus addr#1), 使用 Function 5 控制燈泡, 這是查閱 MITSUBISHI_FX3U-Users-Manual-Data-Communications-Networking (JY997D16901C), Non-Protocol Communication (RS/RS2 Instruction) 的範例改的, 就不多解釋了

 操作影片:

 階梯圖: 

2020年12月15日 星期二

[PLC] 計時器/循環 design pattern

計時器 T 在循環控制的基本迴圈 design pattern

觀念上, 傳統的 Timer, 通電前 B 接點導通, 通電後開始計時, 計時終了換成 A 接點導通

本例中, X0 為啟動按鈕, X1 為停止按鈕, 使用 M0 進行自鎖, 要控制 8 個 Y 輸出, 用到 T0 ~ T7 共 8 個計時器, 依 T0 ~ T7 順序啟動, 等於傳統配電盤上串接在一起, 且 T7 的 B 接點用來串接在整個電路之前, 當 T7 計時終了,  B 接點斷開, 瞬間切斷整個計時迴路, T7 本身也斷電, 因此 T7 B 接點又馬上重新接上, 使得 T0 從頭開始計時.

操作影片:


階梯圖:

2020年11月24日 星期二

[JavaScript] 練習使用 fetch

 index.html

<!DOCTYPE html>
<html>
  <head>
    <title>Code or Nocode</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <script>
      function getAnswer() {
        const ul = document.getElementById('answer'); 
        const url = 'http://localhost/test/answer.html'
        fetch(url)
          .then((resp=> resp.json())
          .then(function(data) {
            ul.innerText = "Answer="+data.answer
        })
        setTimeout(getAnswer1000);
      }
    </script>
  </head>
  <body>
    <h1 id="answer">Answer=</h1>
    <script>
      setTimeout(getAnswer1000);
    </script>
  </body>
</html>

 

answer.html

{"answer":"3"}