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.mzph.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;通常的指纹识别系统还具有较强的通信能…