<< 向前        下一页 >>

ID : 2244

gCao对象

gCao对象是管理插件生成与撤销所需的对象。
gCao对象是排列性,具有0~9号的10个要素,各要素属于ORiN2的CaoWorkspace对象。

“Cao”与“gCao”

在PacScript语言中,与Cao对象相同的型号(CaoWorkspace)有“Cao”和“gCao”2个。
上图表示PacScript语言中的“Cao”与“gCao”的关系。
“Cao”是只在任务(程序)内局部存在的一个内置对象,而“gCao”作为一个全局对象,存在于任务外。
不同任务的“Cao”彼此不相干,而“gCao”即使任务不同,参照相同对象(gCao[n]的n相同时)时也会彼此影响。

参照要素

要参照gCao对象的n号的要素,可使用以下的2个描述

  1. gCao? 描述
    像gCao0、gCao1、gCao2、 ... gCao9 那样为'?'指定0~9的数字。
    当参照的要素是静态的时,使用该描述。
  2. gCao[n] 描述
    像gCao[0]、gCao[1]、gCao[2]、 ... gCao[9] 那样,为了使'n'最终的值为数字0~9而指定格式。
    在执行时动态评价格式。
    当参照的要素是动态的时,使用该描述。

对象的生成与撤销

gCao对象与Cao对象不同,对象的生成与撤销不依赖PacScript的任务,始终全局存在,不会撤销。

但是,gCao对象的各要素的对象在被参照的任务中进行以下的关联。

  • 在任务A中gCao[n]被参照时,通过任务A的停止,对gCao[n]管理的插件进行“插件取消请求(ProviderCancel)”。
  • 在任务A中gCao[n]被参照时,通过任务A的开始,对gCao[n]管理的插件进行“插件清空请求(ProviderClear)”。

在多个任务中使用gCao对象时的注意事项

如果某一任务停止,对在该任务中被参照的gCao[n]进行“插件取消请求(ProviderCancel)”。
这意味着对被gCao[n].AddController()生成、被gCao[n].Controllers管理的所有插件的执行中处理进行取消请求。这使得插件中断执行中的处理,发行错误,因此导致参照相同的gCao[n]的任务停止。

此时,为不受其他任务的影响,请将使用的gCao[n]的‘n’设为其他值,分开始用。

相关指令

指令规格请参照Cao对象。是同一型号的对象。

应用示例

'Tsr0.pcs

Sub Main

I0 = 0 '标志清除

'将QRCode插件添加到gCao0
Dim qr As Object
qr = gCao[0].AddController( "QRCode", "CaoProv.DENSO.QRCode", "", "Conn=Com:2" )

Do
Delay 100
If I0 = 1 Then Exit Do '等待标志变成1
Loop

'从gCao0删除QRCode插件
gCao[0].Controllers.Remove "QRCode"

End Sub

'Tsr1.pcs

Sub Main

'等待QRCode被添加到gCao0中
Do
Delay 100
If gCao[0].Controllers.IsMember( "QRCode" ) Then Exit Do
Loop

从gCao0取得QRCode的对象
Dim qr As Object
qr = gCao[0].Controllers.Item( "QRCode" )

': qr.指令 执行

I0 = 1 ' 已用完,将标志设为1

End Sub

ID : 2244

<< 向前        下一页 >>