IOSetAccessName() 函数
- Last UpdatedAug 16, 2021
- 1 minute read
通过在脚本中使用 IOSetAccessName() 函数,可以实现“动态引用寻址”。IOSetAccessName() 在运行时修改 I/O 标记的“访问名”的应用程序名或主题名的特征。
备注:处理 IOSetAccessName() 函数时,在结束当前的对话并启动新的对话期间,会有一个时间上的延迟。在此期间,任何“插入”或写入新主题的尝试都将丢失。
类别
其它
语法
IOSetAccessName("AccessName", "NodeName", "AppName", "TopicName");
参数
AccessName
要将新的“应用程序名”与“主题名”值指定给它的现有“访问名”。实际的字符串或消息标记。
NodeName
要指定的新“节点名”。实际的字符串或消息标记。
AppName
要指定的新“应用程序名”。实际的字符串或消息标记。
TopicName
要指定的新“主题名”。实际的字符串或消息标记。
附注
指定给 AccessName、AppName 以及 TopicName 参数的值可以指定为字符串,或是使用其它 InTouch 标记或函数提供的字符串值。
如果使用添加访问名对话框为访问名故障转移配置了辅助数据源,则无法在运行时使用 IOSetAccessName() 函数来更改辅助数据源配置。
备注:在 WindowMaker 中创建“访问名”时,如果“访问名”是 SuiteLink 类型,则 InTouch HMI 会阻止“访问名”去访问相同的节点、应用程序以及主题。请勿允许 IOSetAccessName() 函数在运行时将“访问名”重定向到重复项。通过在运行时使用 IOSetAccessName() 函数,SuiteLink 类型的“访问名”可以重定向到重复的主题。重定向后的“访问名”将不起作用。
示例
通过使用以下脚本函数,可以将 MyAccess1“访问名”更改为指向 Excel 应用程序与 [Book1]Sheet1 主题,而不影响当前的 NodeName:
IOSetAccessName("MyAccess1", "", "EXCEL", "[Book1]Sheet1");
如果给“主题”指定空字符串,则“访问名”的当前“应用程序”值会进行更新,它的“主题”值会保持不变。
例如,以下脚本将 MyAccess2“访问名”的“应用程序名”更改为 EXCEL,而不影响当前的“主题”值:
IOSetAccessName("MyAccess2", "", "EXCEL", "");
如果仅仅给“应用程序名”指定空字符串,则标记的当前“主题”值会进行更新,但它的“应用程序”值会保持不变。例如,以下脚本将 MyAccess3 标记的“主题”更改为 [Book2]Sheet1,而不影响它的当前“应用程序名”值:
IOSetAccessName("MyAccess3", "", "", "[Book2]Sheet1");
本例可用于必须采用 PLC 冗余配置的情况。