- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C通过返回值改变属性
通过返回值改变属性
对象的属性值可以通过返回值来设置,这与通过明确设置检索如 SetBackColor 和 SetProperty 相比较,系统利用率将显著减少。
以高系统利用率改变属性的实例
Circle1 处的动作,可见,触发变量toll,2 秒:
if (GetTagWord(toll) 20)
{
SetBackColor(lpszPictureName,lpszObjectName,CO_RED); // 背景色
Set Left(lpszPictureName,lpszObjectName,199); // 位置 X
SetTop(lpszPictureName,lpszObjectName,199); // 位置 Y
}
else
{
SetBackColor(lpszPictureName,lpszObjectName,CO_GRAY); // 背景色
SetLeft(lpszPictureName,lpszObjectName,99); // 位置 X
SetTop(lpszPictureName,lpszObjectName,99); // 位置 Y
}
return TRUE; // 可见
功能相同,以低系统利用率改变属性的实例
Circle1 处的动作,背景色,触发变量toll,2 秒:
if (GetTagWord(toll) 20)
return CO_RED;
else
return CO_GRAY;
Circle1 处的动作,位置 X,触发变量toll,2 秒:
if (GetTagWord(toll) 20)
return 199;
else
return 99;
Circle1 处的动作,位置 Y,触发变量toll,2 秒:
if (GetTagWord(toll) 20)
return 199;
else
return 99;
技术背景:
在第一种情况中,在动作内检索 set 函数,这些函数将引发到 PDLRT 的任务切换。 PDLRT 建立画面中的必需部分。
之后,设置下一个 set 检索。
在第二个实例中,用户必须执行 3 个动作,但这是一种非常快速的方法。
脚本控制的动作执行后,将收集全部结果并马上将结果传送给 PDLRT。 这仅涉及到一次任务切换。
现在,PDLRT 可以对画面设置进行优化,因为所有的值均可利用。 这仅涉及到一次画面设置。
如果需要执行复杂的计算或操作,以便检查例如颜色更改,则可以设置项目函数,该函数会执行计算并将其填充到 C 结构中。 其它动作可从该 C 结构中读取,然后重新传送返回值。
GetTag/SetTag 或 GetTagWait/SetTagWait
要读取和描述过程变量,缺省情况下使用函数 GetTag 和 SetTag。
GetTag 还是 GetTagWait?
通过 GetTag 检索的过程变量均放置在图像中。 因为图象的更新与读取是两个分离的过程,所以,GetTag 调用将不受连接的直接影响。 这样,可比 GetTagWait 检索执行得更快、更不受约束。
使用 GetTagWait,已请求的过程变量并未在图像中接收。 GetTagWait 检索可明确地读取 AS 中的数值。 这始终包含通过连接和 AS 反应时间的来回路径。 在运行时,C
动作的处理锁定而且不能预先估计检索需要持续多久。 如果正在读取多个变量,时间将增加。
如果快速写/读过程需要同步,那么需要检索 GetTagWait,要避免数值从 AS 确切读取或在映像中注册。 在循环 C 动作中应避免 GetTagWait 检索,因为它是引起性能问题的主要原因。
SetTag 还是 SetTagWait?
SetTag 检索将发出一个写作业,而不需等待 AS 的确认。
SetTagWait 检索将发出一个写作业,且需要等待 AS 的确认。 这始终包含通过连接和 AS 反应时间的来回路径。 在运行时,C 动作的处理锁定而且不能预先估计检索需要持续多久。 如果正在写入多个变量,时间将增加。
SetTagWait 检索将用于确保在对 C 动作进行进一步的处理之前,写入数值。 在循环 C 动作中,应避免 SetTagWait 调用。
説明GetTag 与 GetTagWait 之间的差别也适用于内部变量。 然而,在这种情况下的差别将不是十分严重,因为没有出现任何连接。 内部变量也需要使用相应的 wait 函数,以便对快速写/读过程进行同步。
有关详细信息,请参见相应的函数描述。
用变量触发器代替时间触发器
使用图形编辑器,动态对话框中动作的缺省设置是变量触发器,而 C 动作的缺省设置则是时间为 2
文档评论(0)