问题描述:
在TwinCAT HMI画面中嵌入Scope控件可以方便的对PLC中的变量信息进行图形化的展示,但TwinCAT HMI Scope画面开始的时机和时间长度需要手动触发或输入实现,这在实际使用时并不方便与实用。解决方案:
通过在客户端执行JS命令的方式读取Scope控件的按钮对象,并调用按钮对象的Click方法来达到模拟点击开始录制按钮的功能。
如下图,通过绑定ScopeControl的自定义事件为PLC程序中的变量,当PLC变量状态变化时便会执行事件绑定的相关语句。
此处通过getElementsByClassName方法获取页面中所有的Scope控件的工具栏对象,并调用对应的子对象的Click方法执行相关动作。
document.getElementsByClassName("TcHmi_Controls_Beckhoff_TcHmiScopeControl_TcHmiScopeControl-template-menu-tool-bar")[x].children[y].click()
TwinCAT HMI Scope Control控件子对象的说明:
|
Index |
说明 |
|
|
|
x |
0 |
当前页面中仅有一个Scope控件时x=0,若有多个则根据实例生成顺序确定0、1、2… |
y |
0 |
StartRecordButton,Scope开始录制 |
|
1 |
StopRecordButton,Scope结束录制 |
|
2 |
optionsButton,隐藏选项展开 |
|
3 |
RunButton,开始显示 |
|
4 |
PauseButton,暂停显示 |
|
5 |
Splitter1,分隔符 |
|
6 |
DisplaywidthTextBox,显示时间宽度 |
|
7 |
Splitter2,分隔符 |
|
8 |
ScrollBackBigButton,快退 |
|
9 |
ScrollBackSmallButton,慢退 |
|
10 |
ScrollForwardSmallButton,慢进 |
|
11 |
ScrollForwardBigButton,快进 |
|
12 |
Splitter3,分隔符 |
|
13 |
GotoTextBox,定位到目标时间 |
|
14 |
Splitter4,分隔符 |
|
15 |
UndoButton,撤回 |
|
16 |
RedoButton,重做 |
|
17 |
Splitter5,分隔符 |
|
18 |
PanToggleButton,平移 |
|
19 |
PanXYToggleButton,四向移动 |
|
20 |
ZoomToggleButton,时间轴缩放 |
|
21 |
ZoomXYToggleButton,区域缩放 |
|
22 |
UnzoomButton,恢复缩放前显示 |
|
23 |
ZoomOutMaxButton,回到最大显示状态 |
|
24 |
OverviewButton,总体概览图 |
|
25 |
TriggerWindowButton,触发窗口 |
|
26 |
UploadButton,上载 |
|
27 |
DownloadButton,下载 |
|
|
|