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个描述
- gCao? 描述
像gCao0、gCao1、gCao2、 ... gCao9 那样为'?'指定0~9的数字。
当参照的要素是静态的时,使用该描述。 - 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