找答案的高端用户(找答案钻石及双钻级别的用户)将尽可能从此问题下的所有回
答中,为您推荐最佳答案。届时您可以根据推荐数采纳答案。
如果自提问时间起7天内您仍无法选出最佳答案,您可以选择“无满意答案”关闭此问题。
问题
取消精华
首页精华问答
取消推荐
高端用户推荐
申请置评
已申请置评
修改
修改标签
添加标签
官方认证
取消官方认证
修改标签
添加标签
转移分类
删除
{{itemCategory}}
收藏({{answerDetail.Q_FavoriteCounts}})
手机扫码追踪该问题,
觉得实用,立即去分享!
点击复制链接
专家建议
取消最佳答案
修改
原因在于“PLC代码显示对象路径”的语法不是传统物理路径,而是基于ProDiag监控的Assignment(赋值点)逻辑映射。你试了好多没用,大概率是因为在为“PLC代码视图”指定“画面窗口”路径,但此控件根本不认这个。
要达成“在A画面概览点击,在B画面的窗口显示代码”,可以尝试如此操作:1.在GRAPH块的FB接口中,为你想监控的每段代码(如每一步动作)添加一个Static的Bool变量,并将其紧邻逻辑放置在代码段右侧。这是生成映射的关键;2.确保A画面的GRAPH概览和B画面的PLC代码视图,绑定的是同一个GRAPH背景数据块;3.放弃使用“改变画面”或“画面窗口”路径。在GRAPH概览中触发“PLC代码视图”按钮的点击事件,或使用按钮调用以下脚本:
// 参数依次为:PLC名称, FB名称, 你在第1步定义的Bool变量名, 控件名
HMIRuntime.UI.ProDiag.SysFct.OpenProDiagDetailsByAssignment("PLC_1", "你的GRAPH_FB名称", "#你的Bool变量名", "CodeViewer");
“显示对象路径”留空,不要在“PLC代码显示对象路径”里填任何指向画面窗口的字符串,那是无效的。通过上述脚本直接调用系统函数,就能无视画面层级,在B画面的控件里显示代码。
等您来回答
换一换
{{item.CoinValue}}西币
{{item.VisitNum}}人想问
本版相关问题
换一换
专家置评
首次回答问题,获得
双倍西币积分!
立即成为技术知识分享的一员!
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!

西门子商城