RAPID 信號的互鎖和同步 WaitTestAndSet 和 TestAndSet

RAPID 信號的互鎖和同步


????? WaitTestAndSet? 指令等待指定的持久型 BOOL 變量變成 FALSE.當變量值變為 FALSE, 該指令將設置變量為 TRUE? 并繼續執行. 該持久型變量可被作為同步或者互斥時的一個 BOOL 信號量。
????? 這個指令與 TestAndSet 有著同樣的基本功能。但是 WaitTestAndSet 一直等到 BOOL 變量變成 FALSE ,而 TestAndSet指令立即終止。
????? 不推薦在中斷程序中使用 WaitTestAndSet 指令。UNDO handler, 或者 event routines.

????? 舉例:在資源需要同時訪問的時候:
????? Use of some RAPID routines with function problems when executed inparallel.
????? Use of the FlexPendant - Operator Log.


Example 1

?????? 為了避免在操作日志上輸出混合的日志(一個是主程序的,一個是背景程序的)使用 WaitTestAndSet 功能保證每個任務輸出的三行都是在一起的,不被其他任務的輸出打亂。如果?MAIN 程序通過 WaitTestAndSet? 首先設置了標志位? (tproutine_inuse),那么背景程序? BACK1 必須等待 ?MAIN 程序離開標志位之后,背景程序才能輸出日志。

MAIN program task:PERS bool tproutine_inuse := FALSE;...WaitTestAndSet tproutine_inuse;TPWrite "First line from MAIN";TPWrite "Second line from MAIN";TPWrite "Third line from MAIN";tproutine_inuse := FALSE;BACK1 program task:PERS bool tproutine_inuse := FALSE;...WaitTestAndSet tproutine_inuse;TPWrite "First line from BACK1";TPWrite "Second line from BACK1";TPWrite "Third line from BACK1";tproutine_inuse := FALSE;


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

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

相關文章

【常用網址】——opencv等

opencv官網Releases - OpenCVhttps://opencv.org/releases/

(五):C++分布式實時應用框架——微服務架構的演進

C分布式實時應用框架——微服務架構的演進 技術交流合作QQ群:436466587 歡迎討論交流 上一篇:(四):C分布式實時應用框架——狀態中心模塊 版權聲明:本文版權及所用技術歸屬smartguys團隊所有,對于抄襲,非經同意轉載等…

如何通過軟件項目開發來提高自身的實力。

在我們這個專業,大多數人都不會將軟件開發當作自己的事業,因為若要在這個行業上能夠立足,得需要一個好的基礎,但是由于這個東西并不是可以通過書本能夠徹底的理解和 掌握的,隨著時間的變化,我們身邊的科技也…

夢回JavaScript--數據類型之undefined

undefined類型只有一個值,即undefined。在使用var聲明變量但未對其加以初始化時,這個變量的值就是undefined; var mes; alert(mes undefined) //true如果變量沒有聲明就會出現錯誤 var mes; alert(mes) //undefined alert(a)//error 然而有一…

Robot Application Builder

軟件開發工具包 Robot Application Builder是安裝在PC機(Windows 2000或Windows XP操作系統)上的一種獨立開發工具,可用于創建運行于ABB FlexPendant示教器或PC機上的定制化操作界面。為此,該軟件包由以下兩部分組成:…

asp.net model 驗證和取出 ErrorMessage 信息

為什么80%的碼農都做不了架構師?>>> public class Users{public int Id { get; set; }public string Name { get; set; }[Required(ErrorMessage "郵箱不能為空")][EmailAddressAttribute(ErrorMessage "郵箱格式不正確")]public…

this

作者:李挺鏈接:https://www.zhihu.com/question/19636194/answer/123274198來源:知乎著作權歸作者所有,轉載請聯系作者獲得授權。關于 this 的描述,曾經在 stackoverflow 上看到了一篇回答寫的非常詳盡,下面…

DeviceNet 消息類型

DeviceNet是一種低成本的通訊總線鏈接,具有開放現場網絡標準,規范和協議都是開放的。DeviceNet將控制和數據融合在一起,信息具有數據標識區,網絡利用標識區進行優先級仲裁,可以高效傳送I/O數據。 DeviceNet有兩種不同類…

【pyqt5學習——信號與槽】實例計時器(解決界面卡頓問題)

目錄 一、方法一:另開線程 1、什么是信號與槽 1)GUI控件(信號)與槽 2)自定義信號與槽 2、實戰1:計時器(不自定義信號槽和不使用多線程) 1)界面設計——利用qt-desi…

【轉】為什么螺絲都是六角的?

6邊形的螺絲擰60度就可以圖形還原(不知道表述清楚沒,見討論中的解釋)) 如果空間比較狹小,只要扳手能擰動60度就能安裝上螺絲 這是在擰動角度和邊長相互妥協后的產物 試想 如果是正方形,邊長夠長了&#xff…

用PHP和Websocket實現實時通訊

說到websocket大家一定不會陌生,WebSocket是HTML5一種新的協議。它實現了瀏覽器與服務器全雙工通信(full-duplex)。一開始的握手需要借助HTTP請求完成,當瀏覽器和服務器握手成功后,瀏覽器和服務器之間就形成了一條快速通道。兩者之間就直接可…

ABB SocketReceive 套接口 函數

SocketReceive函數使用方法: SocketReceive 從遠程計算機接收數據。 SocketReceive 可以被客戶端和服務器程序使用。 基本樣例: 下述樣例說明了 SocketReceive 的語法: Example 1 VAR string str_data; ... SocketRe…

【數據庫學習筆記】——創建數據庫連接對象connection

目錄 connect函數的參數 創建連接對象連接MySQL代碼 連接對象常見屬性與方法 事務名詞解釋 課程視頻鏈接: 第14節 Python操作數據庫_嗶哩嗶哩_bilibili666https://www.bilibili.com/video/BV1q54y147KX?fromsearch&seid968950907021994347&spm_id_from3…

數據庫常用增刪改查記錄等語句

1增 1.1【插入單行】insert [into] <表名> (列名) values (列值)例&#xff1a;insert into Strdents (姓名,性別,出生日期) values (開心朋朋,男,1980/6/15) 1.2【將現有表數據添加到一個已有表】insert into <已有的新表> (列名) select <原表列名> from &…

一個關于pynoi游戲的C語言編程

“去吧&#xff0c;秦&#xff0c;好好享受這個夜晚&#xff0c;我給你準備了一份禮物&#xff0c;希望你能喜歡。”小布萊克眨著眼睛笑道&#xff0c;狡猾的像一頭小狐貍。轉載于:https://www.cnblogs.com/jackey18/p/8260774.html

【數據庫學習筆記】——cursor游標對象

目錄 1、創建cursor對象 2、cursor對象常用方法 3、操作數據庫的常見流程&#xff08;五部曲&#xff09; 課程視頻鏈接&#xff1a; 第14節 Python操作數據庫_嗶哩嗶哩_bilibili666https://www.bilibili.com/video/BV1q54y147KX?p2&spm_id_frompageDriver 1、創建cu…

ABB 壓包指令PackRawBytes 解包指令UnpackRawBytes

ABB 壓包指令PackRawBytes 解包指令UnpackRawBytes PackRawBytes- 將數據導入 rawbytes 數據。 使用方法 PackRawBytes 用于將 num, dnum, byte,或者 string類型的數據&#xff0c;打包到 rawbytes 類型的變量中. 基本舉例 &#xff1a; VAR rawbytes …

Android Https相關完全解析 當OkHttp遇到Https

Android Https相關完全解析 當OkHttp遇到Https轉載于:https://www.cnblogs.com/zhujiabin/p/5304617.html

基于ARM核AT75C220在指紋識別系統中應用

紋識別技術近年來逐漸成熟&#xff0c;在門禁、安防和金融等方面得到了越來越廣泛的應用。典型的指紋識別系統是以指紋傳感器和DSP處理器為核心構成。指紋傳感器采集指紋圖像&#xff0c;DSP處理器實時實現指紋識別算法。同時&#xff0c;通常的指紋識別系統還具有較強的通信能…