如何嵌入并执行外部exe文件在组态王编程中? (如何嵌入并执行文件)

在组态王编程中嵌入并执行外部exe文件:操作指南

一、引言

在工业自动化领域,组态王(Kingview)作为一款广泛应用于工业自动化监控与控制的软件平台,具有强大的功能性和灵活性。
在实际应用中,有时需要在组态王的程序中嵌入并执行外部exe文件,以实现更复杂的自动化任务。
本文将详细介绍如何在组态王编程中嵌入并执行外部exe文件。

二、准备工作

在开始嵌入和执行外部exe文件之前,需要做好以下准备工作:

1. 确保已经安装并熟悉组态王软件环境。
2. 准备需要嵌入的外部exe文件,并确保其可正常运行。
3. 了解需要执行的外部exe文件的功能及参数设置。

三、嵌入外部exe文件

在组态王中嵌入外部exe文件,可以通过以下步骤实现:

1. 打开组态王开发环境,创建一个新的工程或打开已有的工程。
2. 在工程界面中,选择需要嵌入exe文件的位置,如画面、命令按钮等。
3. 在属性窗口中,找到“事件”或“动作”相关选项。
4. 选择相应的事件(如点击事件、定时事件等),并点击“函数”或“脚本”按钮。
5. 在函数或脚本编辑窗口中,使用组态王的函数或命令来调用外部exe文件。

四、执行外部exe文件

在组态王中执行外部exe文件,可以通过以下步骤实现:

1. 使用组态王的系统函数或命令,如“运行命令”等。
2. 指定外部exe文件的路径和名称,以及需要传递的参数。
3. 设置执行方式,如后台运行、前台运行等。
4. 根据需要,设置执行后的处理逻辑,如等待执行完成、获取执行结果等。

五、具体实现方法

以下是一个简单的示例,展示如何在组态王中嵌入并执行外部exe文件:

1. 在组态王开发环境中,创建一个新的画面,并在画面上添加一个命令按钮。
2. 为该命令按钮添加点击事件,点击事件触发时执行外部exe文件。
3. 在事件脚本中,使用以下代码实现:


```scss
// 设置外部exe文件路径和参数
string filePath = C:exampleexternal.exe; // 外部exe文件路径
string arguments = -param1 value1 -param2 value2; // 传递的参数

// 执行外部exe文件
RunCommand(filePath + + arguments); // 运行命令函数,执行外部exe文件
```
在上述代码中,`RunCommand`是组态王中用于执行命令的函数,`filePath`为外部exe文件的路径,`arguments`为需要传递的参数。根据实际情况修改路径和参数。

六、注意事项

在嵌入和执行外部exe文件时,需要注意以下几点:

1. 确保外部exe文件的路径正确,且文件具有可执行权限。
2. 传递参数时,注意参数的格式和顺序。
3. 考虑到安全性,尽量使用可信赖的外部exe文件,避免执行未知或未经验证的程序。
4. 在实际项目中,根据需求进行错误处理和异常处理。

七、总结与展望

本文详细介绍了在组态王编程中嵌入并执行外部exe文件的方法。
通过准备工作、嵌入外部exe文件、执行外部exe文件、具体实现方法以及注意事项等步骤,读者可以了解到如何在组态王中实现这一功能。
在实际应用中,可以根据具体需求和项目情况进行调整和优化。
随着工业自动化技术的不断发展,组态王软件的功能将会越来越丰富,对于嵌入和执行外部exe文件的需求也将更加多样化。


VC++ MFC组态王opc服务器

你可以参看组态王帮助里面《组态王与其它应用程序的动态数据交换(DDE)》相关章节部分里面有组态王与EXCEL,VB等应用程序的通讯和数据交换VC没搞过,示例程序我用VB6.0调试过,能运行!!先参照一下,VB的吧!!VB访问组态王的数据在本例中,假设VB访问“组态王”的数据,VB作为客户程序向“组态王”请求数据。 “组态王”通过OMRON驱动程序从下位机采集数据,VB又向“组态王”请求数据。 数据流向如下图所示。 在“组态王”中定义设备 在工程浏览器中,从左边的工程目录显示区中选择“设备”,然后在右边的内容显示区中双击“新建”图标,则弹出“设备配置向导”(设备的配置请参见第六章 I/O设备管理,在这里比如建立了OMRON的PLC),已配置的设备的信息总结列表框如图18.19所示。 图18.19 利用设备安装向导定义设备定义的连接对象名为OMRON(也就是连接设备名),定义I/O变量时要使用此连接设备。 在“组态王”中定义I/O变量 在工程浏览器左边的工程目录显示区中,选择“数据库\数据词典”,然后在右边的目录内容显示区中用左键双击“新建”图标,弹出“变量属性”对话框,在此对话框中建立一个I/O实型变量。 如图18.20所示。 图18.20 组态王定义IO变量变量名设为FromViewToVB,这个名称由工程人员自己定义。 项目名为001。 选择“允许DDE访问”选项。 变量名在“组态王”内部使用,项目名是供VB引用的,连接设备为OMRON,用来定义服务器程序的信息,已在前面定义。 创建画面 在组态王画面开发系统中建立画面test1,如图18.21所示。 图18.21 组态王中输出变量为文本对象“%%%%%”设置“模拟值输出”动画连接如图18.22所示。 图18.22 组态王为变量输出建立动画连接选择菜单“文件\全部存”,保存画面。 选择菜单“数据库\主画面配置”,将画面test1设置为主画面。 运行可视化编程工具Visual Basic 继续使用上一节的例子,设计Form1如图18.23所示。 图18.23 VB中建立窗体和控件编制Visual Basic程序 双击Form1窗体中任何没有控件的区域,弹出“”窗口,在窗口内书写Form_Load子例程,如图18.24所示。 图18.24 VB中为控件建立与组态王变量的连接生成可执行文件 在VB中选择菜单“File\Save Project”保存修改结果。 选择菜单“File\Make Exe File”生成可执行文件。 激活OMRON驱动程序和“组态王”运行系统TouchVew。 在Visual Basic菜单中选择“Run\Start”运行程序。 窗口Form1的文本框Text2中显示出变量的值。 如图18.25所示。 图18.25 VB接收组态王的数据运行可视化编程工具Visual Basic 选择菜单“File\New Project”,显示新窗体Form1。 设计Form1,将窗体Form1的LinkMode属性设置为1(source),如图18.13所示。 图18.13 VB中建立窗体和控件修改VB中窗体和控件的属性: 窗体Form1属性:LinkMode属性设置为1(source);LinkTopic属性设置为FormTopic,这个值将在“组态王”中引用。 文本框Text1属性:Name属性设置为Text_To_View,这个值也将在“组态王”中被引用。 生成文件 在Visual Basic菜单中选择“File\Save Project”,为工程文件命名为,这将使生成的可执行文件默认名是。 选择菜单“File\Make EXE File”,生成可执行文件。 在“组态王”中定义DDE设备 在工程浏览器中,从左边的工程目录显示区中选择“设备\DDE”,然后在右边的内容显示区中双击“新建”图标,则弹出“设备配置向导”(DDE设备的配置请参见第六章 I/O设备管理),已配置的DDE设备的信息总结列表框如图18.14所示。 定义I/O变量时要使用定义的连接对象名VBDDE(也就是连接设备名)。 图18.14 组态王中定义DDE设备在工程浏览器中定义新变量 定义新变量,变量名为FromVBToView,项目名设为服务器程序中提供数据的控件名,此处是文本框Text_To_View,连接设备为VBDDE。 “变量属性”对话框如图18.15所示。 图18.15 组态王中定义IO变量新建组态王画面名为test,如图18.16所示。 图18.16 组态王中输出来自VB的数据为对象“#####”设置“模拟值输出”的动画连接,如图18.17所示。 图18.17 组态王中为变量输出建立动画连接设置完成后,选择菜单“文件\全部存”。 选择菜单“数据库\主画面配置”,将画面test设置为主画面。 DDE连接设置完成。 执行应用程序 在VB中选择菜单“Run\Start”,运行程序,在文本框中输入数值。 运行组态王,得到VB中的数值。 如图18.18所示。 图18.18 组态王中为变量输出建立动画连接如果画面运行异常,选择TouchVew菜单“特殊\重新建立未成功的DDE连接”,连接完成后再试一

组态王蜂鸣器文件夹在哪

组态王蜂鸣器文件夹在安装路径的属性里,可以通过以下步骤找到组态王蜂鸣器文件夹:1、在组态王安装路径中找到,右键,创建桌面快捷方案。 2、将该工程设为当前工程。 3、在组态王安装路径中选中“组态王6.53”点击属性。 4、在属性中即可找到蜂鸣器文件夹。

亚控组态王重新启动后之前设置的参数

组态王的n个经典问题(老)(转自亚控)(注:这是对于老版本组态王总结出来的一些解决方案,如果是您现在使用的是新版本组态王,请到亚控下载中心下载最新的FAQ)1、变量设定中最大(小)值及最大(小)原始值的意义?最大(小)值是变量在现实中表达的工程值(如:温度、压力等)的大小,而最大(小)原始值是采集设备中【寄存器】数字量的最大(小)值(如板卡中的819-4095等)。 一般对于板卡设备此值为物理量经AD转换之后的值,如12BitAD此值范围0~4096、16BitAD为0~,对于PLC、智能仪表、变频器,其本身已将物理值转换为工程值所以此时最大(小)值与最大(小)原始值在设置时是一致的.2:组态完成后发现工程特别大,怎样把工程文件变小?可以删除*2(报警信息文件),*(历史记录文件),*.111文件(*文件的备份文件)的文件。 3:在定义变量的基本属性时状态栏中的保存数值、保存参数是什么意思?保存参数:在系统运行时,修改变量的域的值(可读可写型), 系统自动保存这些参数值,系统退出后,其参数值不会发生变化。 当系统再启动时,变量的域的参数值为上次系统运行时最后一次的设置值。 无需用户再去重新定义 。 保存数值:系统运行时,当变量的值发生变化后,系统自动保存该值。 当系统退出后再次运行时,变量的初始值为上次系统运行过程中变量值最后一次变化的值。 4:如何不进入系统桌面环境而直接运行组态王工程如何实现(Win98系统)?编辑Win98系统下的文件,将shell=改为:path=c:\ProgramFiles\Kingview\shell= 即可5:组态王里画面属性中覆盖式与替换式有何区别?覆盖式画面出现时,它重叠在当前画面之上,其他打开的画面还在运行,关闭后被覆盖的画面又可见。 替换式画面出现时,所有与之相交的画面自动从屏幕和内存中删除,不再运行。 6:如何利用多个摄像头在组态王上显示多幅画面?用户需要增加硬件设备:矩阵转换器和画面分割器。 视频采集后通过矩阵转换和画面分割再送进组态王中,例如需要显示16个画面,可选择16画面分割器。 7:如何将gif动画用在组态王画面中?在组态王画面中的工具箱内选折<画点位图 designtimesp=451>这一项并用鼠标在画面中画出一个点位图块,然后点击鼠标右键,在其下拉式菜单中选折〈从文件加载〉,选择所需的gif动画文件。 8:如何用组态王在启动一个应用程序时打开任意路径下的一个文件?一在组态王中定义一个内存字符串型变量,在StartApp函数调运之前,赋给该变量值,为:应用程序路径+一个或 两个空格+文件路径、文件名 、文件扩展名。 接下来用StartApp函数,其参数为该变量名称。 如用WordPad启动时打开一个文件:定义“ 文件”问内存字符串型变量,命令语言为:文件=C:\Progra~1\Access~1\ +C:\Progra~1\Kingview\Example\Kingdem~3\+文件名; startapp(文件);/*文件名可以任意给定,如用列表框选择的结果等。 【文件名为8.3格式】9:事件命令语言和程序命令语言内容的长度是否能够加长?组态王命令语言的长度为20k,无法加长,但可以将一个命令语言分为几个事件命令语言。 10:为什么有些打印机在打印实时报警时打出的为乱码?为保证实时报警打印的实时性,组态王将实时报警信息直接送到打印端口(如LPT1)输出打印,而不是调用WINDOWS系统的打印,因为在打印时要求有字库的支持,而直接送端口打印没有调用任何系统的东西,所以就要求打印机提供这些字库。 如果没有字库,则打印出来的东西肯定为乱码。 现在市场上的打印机除了部分针式打印机(如EPSON LQ1600K系列、LQ1900等)具有硬字库外,其余的打印机,所以打印出来的实时报警很容易出现乱码。 11:为什么有些网络在报警窗中不出现登录和注销事件?登录和注销事件在组态王中是作为报警事件显示在报警窗中,这就要求作为登录服务器的机器必须有自己的报警服务器,因此建议用户将作为登录服务器的机器同时做为IO服务器,并选定一个报警服务器作为这台机器的报警服务器。 12:如何查询历史报警?1、打开组态王工程浏览器下的报警配置项,在其对话框的〈文件保存〉栏里输入报警信息存放的天数,并单击报警记录格式,其弹出的对话框里可以进行显示报警信息时间的设置。 变量的报警信息是以*2文件的格式存放在指定的工程路径下面。 2、组态王工程浏览器下的报警配置项中选择将报警信息存入数据库,如需在组态王中查询可利用sql函数进行查询.13:如何计算变化率报警?模拟量的值在固定时间内的变化超过一定量时产生的报警,即变量变化太快时产生的报警。 当模拟量的值发生变化时,就计算变化率以决定是否报警。 变化率的时间单位有三种:秒、分和时。 变化率报警利用如下公式计算:((变量的当前值 - 变量上一次的值)*100)* 单位对应的值/((这一次产生值的时间-上一次产生值的时间)* (最大值 - 最小值)(注:如果是秒,为1;如果是分,为60,如果是时,为3600)) 取其整数部分的绝对值做为结果,若计算结果大于定义的变化率的值,则出现报警。 14:如何利用KVDBGrid控件根据日期条件查询历史报警?将数据库中表Alarm中的字段AlarmDate字段类型改为“日期型”,利用KVDBGrid进行条件查询,日期变量为:DateString,字符串类型历史报警查询=AlarmDate={d ‘+\\本站点\DateString+‘};历史报警查询();历史报警查询();15:如何利用KVDBGrid控件根据报警变量进行相似查询历史报警?历史报警查询=VarName like+‘%+\\本站点\报警变量+%‘;历史报警查询();历史报警查询();16:如何利用KVDBGrid控件根据日期范围查询一段日期的历史报警?历史报警查询=AlarmDate >={d‘+\\本站点\HTDate+‘} and AlarmDate <={d‘+\\本站点\HTDate1+‘};历史报警查询();历史报警查询();17:如何利用KVDBGrid控件根据日期范围查询一段日期的历史报警?历史报警查询=AlarmDate >={d‘+\\本站点\HTDate+‘} and AlarmDate <={d‘+\\本站点\HTDate1+‘};历史报警查询();历史报警查询();18:如何清除组态王6.0报表单元格中的内容?组态王报表没有提供清除报表内容函数,但提供了设置报表单元格内容的函数,包括设置一个或多个单元格的字符或数据,可以使用这些函数(ReportSetCellString)来清除报表单元格的内容,如设为空字符。 这种方式比较灵活,而无须组态王在提供单元格清除函数。 19:如何利用组态王报表来实现数据统计?组态王的报表数据统计功能目前有一定的局限性,但利用组态王的其它功能与报表功能一起可以实现数据统计。 1、设计一个源报表,该报表中存储各种用于数据统计分析的源数据,可以在系统运行时,将源数据添到报表中, 需要统计分析时,可以取出数据进行统计分析。 然后将结果添加到统计结果报表中。 2、通过数据库与报表结合的方式。 将所需的数据通过组态王的SQL功能记录到数据库中,当需要统计分析时,可以通过条件查询,将查询到的数据添加到源报表中,然后通过对源报表的计算将统计结果输出到正式报表中20:在使用EXCEL制作的报表Kintable查询历史数据注意的问题?1、在Kintable的VBA编辑器中Auto_Open子程序中修改初始化历史数据库的函数的参数:修改历史库路径和工程2、如果使用的是EXCEL5以上的版本,请在查询历史数据前,先执行初始化历史库函数。 在Kintable中VBA中的子程序ButtonOk_Click函数定义变量部分之后,直接调用Auto_Open子程序:Call Auto_Open。 解决初始化历史库失败或找不到变量等问题。 21:如何不进入系统桌面环境而直接运行组态王工程如何实现(Win2000系统)?运行RegEdit文件:找到 我的\HKEY_Local_MACHINE\software\Microsoft\Windows NT\currentVersion\winlogon 将Userinit=c:\winnt\system32\改为: Userinit= c:\program files\kingview\22:如何在组态王中修改系统时间?调用批处理文件 Adate = StrFromInt( A年, 10 ) + - + StrFromInt( A月, 10 ) + - + StrFromInt( A日, 10 );string Atime = StrFromInt( A时, 10 ) + : + StrFromInt( A分, 10 ) + : + StrFromInt( A秒, 10 );string Acommand =InfoAppDir()+;Acommand = Acommand + ;Acommand = Acommand + Adate;Acommand = Acommand + ;Acommand = Acommand + Atime;StartApp(Acommand);批处理文件 %1time %222:工程被破坏后如何恢复画面?1、新建一工程,在工程浏览器中选择导入,将被破坏工程的画面导入即可2、新建一工程,该工程下新建与原来工程*文件名一样的空画面,保存画面.将被破坏工程的*文件拷贝到新建工程的目录下将新建工程的*文件覆盖,从新打开新建工程,将画面逐个打开可以看到工程画面。 23:如何打印信息到针式打印机?用函数filewritestr()函数实现,filename参数为“LPT1:”24:组态王中的报表RTL为如何格式,如何打开?报表RTL是组态王自己的报表格式,只能通过组态王用载入报表函数(ReportLoad函数)打开。 25:为什么在命令语言中使用报表函数却不执行?在应用程序命令语言中使用各种报表函数(如:reportsetcellvalue()等)。 当画面隐含时,函数无法正常执行,如:变量值无法正确写入对应的单元格中。 用户要注意这种情况,这不属于软件错误,运行过程中当画面隐含时不能对报表进行操作。 26:组态王中的打印函数PrintWindow()如何使用纸张的横向打印功能?PrintWindow()函数的第二、三个参数不能够为0并且将打印机的纸张设置为横向即可;如:PrintWindow( 监控中心, 60,60, 0,10, 10);27:在历史趋势曲线中看不到曲线?1、数据词典设置的记录变化与安全区中没有选择数据记录2、变量的量程过大,实际显示的数值占量程的百分比非常小,所以感觉没有曲线显示3、系统时间被修改,历史数据存储有误,所以曲线无法显示28:如何根据起始日期时间、终止日期时间查询历史趋势曲线?使用通用控件中的历史趋势曲线:\\本站点\PHTTime=AHTTime(\\本站点\HTDate,\\本站点\HTTime);¥5.9网络文库VIP限时优惠现在开通,立享6亿+VIP内容立即获取组态王的n个经典问题(老)(转自亚控)组态王的n个经典问题(老)(转自亚控)(注:这是对于老版本组态王总结出来的一些解决方案,如果是您现在使用的是新版本组态王,请到亚控下载中心下载最新的FAQ)1、变量设定中最大(小)值及最大(小)原始值的意义?最大(小)值是变量在现实中表达的工程值(如:温度、压力等)的大小,而最大(小)原始值是采集设备中【寄存器】数字量的最大(小)值(如板卡中的819-4095等)。 一般对于板卡设备此值为物理量经AD转换之后的值,如12BitAD此值范围0~4096、16BitAD为0~,对于PLC、智能仪表、变频器,其本身已将物理值转换为工程值所以此时最大(小)值与最大(小)原始值在设置时是一致的.第 1 页2:组态完成后发现工程特别大,怎样把工程文件变小?可以删除*2(报警信息文件),*(历史记录文件),*.111文件(*文件的备份文件)的文件。

本文原创来源:电气TV网,欢迎收藏本网址,收藏不迷路哦!

相关阅读

添加新评论