PLC_博圖系列?基本指令”TONR:時間累加器“

頭圖

PLC_博圖系列?基本指令”TONR:時間累加器“

文章目錄

  • PLC_博圖系列?基本指令”TONR:時間累加器“
    • 背景介紹
    • TONR: 時間累加器
      • 說明
      • 參數
      • 脈沖時序圖
      • 示例

關鍵字: PLC西門子博圖Siemens TONR

背景介紹

這是一篇關于PLC編程的文章,特別是關于西門子的博圖軟件。我并不是專業的PLC編程人員,也不懂電路,所以如果你希望從這里學習PLC編程技術,可能會有些失望。然而,因為工作需要,我開始了解PLC編程,特別是西門子的博圖軟件,并記錄了這些經驗。隨著我國工業4.0的推進,相信會有更多的人從事類似的工作。如果這篇文章能對你有所幫助,歡迎點贊關注我?(^_-)。

TONR: 時間累加器

說明

可以使用“時間累加器”指令來累加由參數 PT 設定的時間段內的時間值。當 IN 輸入處的邏輯運算結果 (RLO) 從“0”變為“1”(信號上升沿)時,將開始進行時間測量,已組態的時間 PT 開始計時。當 PT 正在計時時,加上在 IN 輸入的信號狀態為“1”時記錄的時間值。累加得到的時間值將寫入到輸出 ET 中,并可以在此進行查詢。當達到當前時間值 PT 時,輸出 Q的信號狀態為“1”。即使輸入 IN 的信號狀態變為“0”,輸出 Q 仍會保持置位為“1”。

無論啟動輸入的信號狀態如何,輸入 R 都將復位輸出 ET 和 Q。

“時間累加器”指令可以放置在程序段的中間或者末尾。它需要一個前導邏輯運算。

每次調用“時間累加器”指令,必須為其分配一個用于存儲實例數據的 IEC 定時器。

對于 S7-1200 CPU

IEC 定時器是一個 IEC_TIMER 或 TONR_TIME 數據類型的結構,可如下聲明:

  • 聲明為一個系統數據類型為 IEC_TIMER 的數據塊(例如,“MyIEC_TIMER”)
  • 聲明為塊中“Static”部分的 TONR_TIME 或 IEC_TIMER 類型的局部變量(例如,#MyIEC_TIMER)

對于 S7-1500 CPU

IEC 定時器是一個 IEC_TIMER、IEC_LTIMER、TONR_TIME 或 TONR_LTIME 數據類型的結構,可如下聲明:

  • 聲明為一個系統數據類型為 IEC_TIMER 或 IEC_LTIMER 的數據塊(例如,“MyIEC_TIMER”)
  • 聲明為塊中“Static”部分的 TONR_TIME、TONR_LTIME、IEC_TIMER 或 IEC_LTIMER 類型的局部變量(例如,#MyIEC_TIMER)

更新實例數據中的實際值

“時間累加器”中的實例數據根據以下規則更新:

  • IN 輸入

    “時間累加器”指令將當前 RLO 與保存在實例數據 IN 參數中上次查詢的 RLO 進行比較。如果指令檢測到 RLO 從“0”變為“1”,則說明出現了一個信號上升沿并繼續進行時間測量。如果 RLO 中的指令檢測到從“1”到“0”的變化,則說明出現了一個信號下降沿并且會中斷時間測量。在“時間累加器”指令處理完畢后,IN 參數的值在實例數據中更新,并作為存儲器位用于下次查詢。

    請注意,邊沿檢測將在其他功能寫入或初始化 IN 參數的實際值時中斷。

  • PT 輸入

    當邊沿在 IN 輸入處改變時,PT 輸入處的值將寫入實例數據中的 PT 參數。

  • R 輸入

    輸入 R 處的信號“1”將復位并阻斷時間測量。IN 輸入處的邊沿會被忽略。輸入 R 處的信號“0”將再次啟用時間測量。

  • Q 和 ET 輸出

    Q 和 ET 輸出的實際值在以下情況下更新:

    • 當輸出 ET 或 Q 互連時,調用該指令。

    • 訪問 Q 或 ET。

    如果輸出未互連并且還未被查詢,則不更新 Q 和 ET 輸出的當前時間值。即使在程序中跳過該指令,也不會對輸出進行更新。

    “時間累加器”指令的內部參數用以計算 Q 和 ET 的時間值。請注意,時間測量將在其他功能寫入或初始化指令的實際值時中斷。

危險

**重新初始化實際值的危險 **

在時間測量時,重新初始化 IEC 定時器的實際值會破壞 IEC 定時器的功能。更改實際值可能會導致程序和實際過程之間不一致。這會對財產和人身造成造成嚴重損害。 以下功能可導致實際值重新初始化:

  • 通過重新初始化加載塊
  • 將快照加載為實際值
  • 控制或強制執行實際值
  • “WRIT_DBL”指令

在執行這些功能前,請采取以下預防措施:

  • 在覆蓋實際值之前,應確保設備始終處于安全狀態。
  • 在初始化 IEC 定時器的實際值前,請確保定時器已計時結束。
  • 如果使用快照覆蓋實際值,請確保是在系統處于安全狀態時拍攝的快照。
  • 確保程序在傳輸期間不讀寫受影響的數據。

參數

下表列出了“接通延時”指令的參數:

參數聲明數據類型數據類型存儲區存儲區說明
S7-1200S7-1500S7-1200S7-1500
INInputBOOLBOOLI、Q、M、D、L 或常量I、Q、M、D、L、T、C、P 或常量啟動輸入
RInputBOOLBOOLI、Q、M、D、L 或常量I、Q、M、D、L、P 或常量復位輸入
PTInputTIMETIME、LTIMEI、Q、M、D、L 或常量I、Q、M、D、L、P 或常量時間記錄的最長持續時間。 PT 參數的值必須為正數。
QOutputBOOLBOOLI、Q、M、D、LI、Q、M、D、L、P超出時間值 PT 之后要置位的輸出。

脈沖時序圖

下圖為“時間累加器”指令的脈沖時序圖:

image-20240331110849257

示例

以下示例說明了該指令的工作原理:

image-20240331110905777

下表將通過具體的操作數值對該指令的工作原理進行說明:

參數操作數
INTag_Start信號躍遷“0”=>“1”
PTTag_PresetTimeT#10s
QTag_StatusFALSE;10 秒后變為 TRUE
ETTag_ElapsedTime信號躍遷“0”=>“1” 時間 T#10s 超出。 5 秒后發生信號躍遷“1”=>“0”: 操作數“Tag_ElapsedTime”中的時間仍在 T#5s 中計時。 大約 2 秒后重新發生信號躍遷“1”=>“0”: 操作數“Tag_ElapsedTime”中的時間繼續在 T#5s 中計時。

當“Tag_Start”操作數的信號狀態從“0”變為“1”時,PT 參數預設的時間開始計時。只要操作數“Tag_Start”的信號狀態為“1”,該時間就繼續計時。當操作數“Tag_Start”的信號狀態從“1”變為“0”時,計時將停止,并記錄操作數 Tag_ElapsedTime 中的當前時間值。當操作數“Tag_Start”的信號狀態從“0”變為“1”時,將繼續從發生信號躍遷“1”到“0”時記錄的時間值開始計時。達到 PT 參數中指定的時間值時,“Tag_Status”操作數的信號狀態將置位為“1”。當前時間值存儲在“Tag_ElapsedTime”操作數中。

**注:**以上部分內容來之博圖V16幫助文檔。


博客簽名2021

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/46061.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/46061.shtml
英文地址,請注明出處:http://en.pswp.cn/web/46061.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

ElasticSearch學習之路

前言 為什么學ElasticSearch? 數據一般有如下三種類型: 結構化數據,如:MySQL的表,一般通過索引提高查詢效率非結構化數據,如:圖片、音頻等不能用表結構表示的數據,一般保存到mong…

Linux C++ 054-設計模式之外觀模式

Linux C 054-設計模式之外觀模式 本節關鍵字:Linux、C、設計模式、外觀模式 相關庫函數: 概念 外觀模式(Facade),亦稱“過程模式”。主張按照描述和判斷資料來評價課程,關鍵的活動是在課程實施的全過程中…

昇思25天學習打卡營第24天|基于MindSpore的Diffusion擴散模型

Diffusion擴散模型 本文基于Hugging Face:The Annotated Diffusion Model一文翻譯遷移而來,同時參考了由淺入深了解Diffusion Model一文。 關于擴散模型(Diffusion Models)有很多種理解,本文的介紹是基于denoising di…

基礎動態規劃題目基礎動態規劃題目

目錄 題目1: P1216 [USACO1.5] [IOI1994]數字三角形 Number Triangles 代碼示例: 題目2: Common Subsequence 代碼示例 題目3 :最長上升子序列 最長不下降子序列 最長上升子序列oj答案 題目1: P1216 [USACO1.5]…

SQL面試題練習 —— 查詢每個用戶最大連續登錄天數

目錄 1 題目2 建表語句3 題解 1 題目 查詢每個用戶最大連續登錄天數 樣例數據如下 login_log: 2 建表語句 --建表語句 create table if not exists login_log (user_id int comment 用戶id,login_time date comment 登錄時間 ); --數據插入 INSERT overwrit…

Matlab進階繪圖第63期—帶標記線的三維填充折線圖

三維填充折線圖是在三維折線圖的基礎上,對其與XOY平面之間的部分進行顏色填充,從而能夠更好地刻畫細節變化。 而帶標記線的三維填充折線圖是在其基礎上,添加X相同的一條或多條標記線,以用于進一步討論分析。 由于Matlab中未收錄…

飛睿智能UWB Tag藍牙防丟器標簽,寵物安全新升級,5cm精準定位測距不迷路

寵物早已成為許多家庭不可或缺的一員,它們用無條件的愛溫暖著我們的心房,陪伴我們度過每一個平凡而溫馨的日子。然而,隨著寵物活動范圍的擴大和外界環境的復雜多變,寵物走失的風險也隨之增加。每一次出門遛彎,都像是心…

【學術會議征稿】第六屆光電材料與器件國際學術會議(ICOMD 2024)

第六屆光電材料與器件國際學術會議(ICOMD 2024) 2024 6th International Conference on Optoelectronic Materials and Devices 第六屆光電材料與器件國際學術會議(ICOMD 2024)將于2024年11月1-3日在中國重慶召開。 大會面向基…

Windows與Ubuntu安裝ffmpeg

文章目錄 前言ffmpeg的簡介安裝ffmpegWindows下載設置環境變量 Ubuntu 總結 前言 FFmpeg是一款非常強大的開源音視頻處理工具,它包含了眾多的音視頻編解碼庫,可以用于音視頻的采集、編解碼、轉碼、流化、過濾和播放等復雜的處理。在Windows系統上安裝FF…

【Android14 ShellTransitions】(七)Transition就緒

Transition.onTransactionReady的內容比較長,我們挑重點的部分逐段分析(跳過的地方并非不重要,而是我柿子挑軟的捏)。 1 窗口繪制狀態的流轉以及顯示SurfaceControl 注意我們這里的SurfaceControl特指的是WindowSurfaceControll…

Laravel API資源全解析:打造高效響應的秘訣

Laravel API資源全解析:打造高效響應的秘訣 在構建RESTful API時,資源的表示和管理是核心部分。Laravel框架通過API資源(API Resources)提供了一種優雅的方式來格式化和轉換模型數據,以適應API的響應需求。本文將深入…

Flink底層原理解析:案例解析(第37天)

系列文章目錄 一、flink架構 二、Flink底層原理解析 三、Flink應用場景解析 四、fink入門案例解析 文章目錄 系列文章目錄前言一、flink架構1. 作業管理器(JobManager)2. 資源管理器(ResourceManager)3. 任務管理器(Ta…

Laravel的魔法面具:深入解析門面(Facades)的神秘力量

Laravel的魔法面具:深入解析門面(Facades)的神秘力量 在Laravel的世界中,門面(Facades)是一種將類靜態方法調用轉換為動態方法調用的機制。它們提供了一種優雅的方式來與底層的Laravel服務容器進行交互&am…

Baum-Welch算法,也被稱為前向-后向算法,是一種用于訓練隱馬爾可夫模型(Hidden Markov Model, HMM)的重要算法。

Baum-Welch算法詳解與Python代碼示例 一、算法詳解 Baum-Welch算法,也被稱為前向-后向算法,是一種用于訓練隱馬爾可夫模型(Hidden Markov Model, HMM)的重要算法。HMM是一種統計模型,用于描述一個含有隱含未知參數的…

Java中創建對象的幾種方式

Java中創建對象的幾種方式 1. 使用new關鍵字 這是最直接、最常見的創建對象的方式。通過new關鍵字,Java會調用類的構造函數(Constructor)來初始化新創建的對象。 ClassName obj new ClassName();2. 使用clone()方法 如果類實現了Cloneab…

JavaScript統計字符串中出現次數最多的字符

思路&#xff1a;使用charAt()方法可以通過for循環來依次遍歷出字符串中的字符 將遍歷出來的字符作為一個空對象的屬性 如果該對象中該屬性沒有值則對其賦值為1 如果該對象中已經有值了則在原基礎上加1 最后通過for in循環比較對象中個屬性值大大小然后將其打印出來 <!DOCT…

liunx面試題目

如何看當前Linux系統有幾顆物理CPU和每顆CPU的核數&#xff1f; 查看物理cup&#xff1a; cat /proc/cpuinfo|grep -c ‘physical id’ 查看每顆cup核數 cat /proc/cpuinfo|grep -c ‘processor’ 若希望自動實現軟件包的更新&#xff0c;可以使用yum-cron并啟動該服務 yum -y …

網絡請求之urllib.request的使用(Get方式)

urllib.request用于打開和讀取url&#xff0c;模擬瀏覽器發送一個http請求&#xff0c;并獲取響應結果。 urllib.request.urlopen的語法格式&#xff1a; urlopen(url,dataNone,[timeout,]*,cafileNone,capathNone,cadefaultFalse,contextNone) 參數說明&#xff1a; url url…

C++ std::lock_guard和 std::unique_lock

二者都是 C 標準庫中用于管理互斥鎖&#xff08;mutex&#xff09;的 RAII&#xff08;Resource Acquisition Is Initialization&#xff09;機制的類。這些類可以確保互斥鎖在構造時被獲取&#xff0c;在析構時被釋放&#xff0c;從而避免死鎖和資源泄漏問題。不過&#xff0c…

Python基礎語法篇(上)

Python基礎語法&#xff08;上&#xff09; 一、基知二、基本數據類型&#xff08;一&#xff09;標準數據類型&#xff08;二&#xff09;數據類型轉換 三、字符串基本操作&#xff08;一&#xff09;字符串的索引和切片&#xff08;二&#xff09;字符串的拼接 三、運算符四、…