力控组态软件脚本语言
⑴ 力控组态软件中的脚本编辑器是什么怎么理解
力控我没用用过
不过跟MCGS和亚控等组态软件应该一样
脚本编辑器就是当你运行你设计的组态软件时立即在后台执行脚本里的语句
可以理解C++中的成全局变量
⑵ 力控脚本如何去编制
力控脚本定义:
脚本语言,脚本语言或扩建的语言,是一种编程语言控制软件应用程序。 “脚本”往往被视为有别于“程序” ,执行独立于任何其他的应用。在同一时间,他们是有别于核心代码的应用,这是通常的书面在不同的语言,和现正接触到最终用户,使他们的行为的应用,以适应用户的需要。脚本往往是,但并非总是解释,从源代码或“半汇编” ,以字节这是解释,不同的应用,他们的相关,这是传统的编制本土机器码为系统上运行他们。脚本语言几乎总是在嵌入式应用与它们相关的。
命名为“脚本”是来自书面脚本的表演艺术,在这种对话是订下要发言,由人类行为者。早期的脚本语言通常被称为一批语言或工作控制语言。例如早期的脚本语言的建立是为了缩短传统的编辑-编译-链接-运行的过程。
1.脚本语言(javaScript,VBscript等)介于HTML和C,C++,Java,C#等编程语言之间。
HTML通常用于格式化和链结文本。而编程语言通常用于向机器发出一系列复杂的指令。
2.脚本语言与编程语言也有很多相似地方,其函数与编程语言比较相象一些,其也涉及到变量。与编程语言之间最大的区别是编程语言的语法和规则更为严格和复杂一些.
3.与程序代码的关系:脚本也是一种语言,其同样由程序代码组成。
注:脚本语言一般都有相应的脚本引擎来解释执行。 他们一般需要解释器才能运行。JAVASCRIPT,ASP,PHP,PERL,Nuva都是脚本语言。C/C++编译、链接后,可形成独立执行的exe文件。
4.脚本语言是一种解释性的语言,例如vbscript,javascript,installshield script,ActionScript等等,它不象c\c++等可以编译成二进制代码,以可执行文件的形式存在.
脚本语言不需要编译,可以直接用,由解释器来负责解释。
5.脚本语言一般都是以文本形式存在,类似于一种命令.
举个例子说,如果你建立了一个程序,叫aaa.exe,可以打开.aa为扩展名的文件.
你为.aa文件的编写指定了一套规则(语法),当别人编写了.aa文件后,你的程序用这种规则来理解编写人的意图,并作出回应.那么,这一套规则就是脚本语言.
这是我的回答 祝你好运~~
⑶ 三维力控组态软件的脚本编写要用VB语言,请问要怎么学习vb啊,是全部学还是只学里面的基础语言
力控的脚本语句实际都是简化的,比VB简单多了,而且每个语句都有说明的,你可以看下力控的帮助说明,每个语句都有例子,看看就明白了。在安装完力控软件后,在软件内有几个例子,自己可以好好看下,力控的例子里面实际不光有IF、switch等语句,还有力控自己的面向对象的语句,例如力控的画面中的每一个图标单元都有自己的属性和函数,都可以通过这些属性对象(对应的函数)来定义和读取。
⑷ 谁能跟我说一下力控组态软件的脚本编辑用什么语言编写
这个脚本是类VC的,其实没什么要求。。。。学过VB的就会了 很简单的,你可以打开demo工程里,看看那里面怎么写的。另外脚本可以写到应用程序中,也可以写到窗口脚本,还可以写到按钮左键动作里等等,区别是执行的条件不一样而已。
举例:
IF IsWeb() == 1 THEN
ELSE
IF COD_start_meas.PV == 0 THEN
sys_time = StrTime($Curtime,1);
COD_run_log = "待机[Ready]";
SQLInsert(ConnectID,"dlhb_sys_log","sys_info");
COD_run_log = "";
ENDIF
IF COD_start_meas.PV == 1 THEN
sys_time = StrTime($Curtime,1);
COD_run_log = "就绪[Ground]";
SQLInsert(ConnectID,"dlhb_sys_log","sys_info");
COD_run_log = "";
ENDIF
IF COD_start_meas.PV == 2 THEN
sys_time = StrTime($Curtime,1);
COD_run_log = "清洗[Clean]";
SQLInsert(ConnectID,"dlhb_sys_log","sys_info");
COD_run_log = "";
ENDIF
IF COD_start_meas.PV == 4 THEN
sys_time = StrTime($Curtime,1);
COD_run_log = "校正[Calib.]";
SQLInsert(ConnectID,"dlhb_sys_log","sys_info");
COD_run_log = "";
IF COD_meas_flag.PV == 1; THEN
COD_meas_flag.PV = 0;
sys_meas_flag.PV = 0;
COD_cal_flag.PV =1;
sys_run_log = "COD启动测量后进入校正状态,触发开启...";
SQLInsert(ConnectID,"dlhb_sys_log","sys_info");
sys_run_log = "";
#sys_active_T.Start(); //开启触发定时器
ENDIF
ENDIF
IF COD_start_meas.PV == 8 THEN
sys_time = StrTime($Curtime,1);
COD_run_log = "启动[Start]";
SQLInsert(ConnectID,"dlhb_sys_log","sys_info");
COD_run_log = "";
ENDIF
IF COD_start_meas.PV == 32 THEN
sys_time = StrTime($Curtime,1);
COD_run_log = "测量[meas.]";
SQLInsert(ConnectID,"dlhb_sys_log","sys_info");
COD_run_log = "";
sys_meas_time.DESC = StrTime($Curtime,1); //系统启动测量时间
sys_run_log = "测量时间缓存...";
SQLInsert(ConnectID,"dlhb_sys_log","sys_info");
sys_run_log = "";
ENDIF
IF COD_start_meas.PV == 64 && COD_meas_flag.PV == 1 THEN
sys_time = StrTime($Curtime,1);
COD_run_log = "排空[Empty]";
SQLInsert(ConnectID,"dlhb_sys_log","sys_info");
COD_run_log = "";
sys_run_log = "COD测量结束, " + IntToStr(PLC_start_sampl.PV,10) + "号取样口数据打包存入报表...";
SQLInsert(ConnectID,"dlhb_sys_log","sys_info");
sys_run_log = "";
IF PLC_start_sampl.PV ==1 THEN
COD1_db.PV = COD_VALUE.PV;
sys_meas_time1.DESC = sys_meas_time.DESC;
IF ( point2_flag.PV || point3_flag.PV || point4_flag.PV ) == 0 THEN
sys_run_log = "系统循环测量周期定时器开启...";
SQLInsert(ConnectID,"dlhb_sys_log","sys_info");
sys_run_log = "";
#sys_interval_T.Start(); //系统循环测量周期定时器开启
ELSE
sys_run_log = "CODmax测量间隔定时器开启...";
SQLInsert(ConnectID,"dlhb_sys_log","sys_info");
sys_run_log = "";
#point_interval_T.Start(); //CODmax测量间隔定时器开启
ENDIF
//ELSE
//COD1_db.PV = 0;
ENDIF
IF PLC_start_sampl.PV ==2 THEN
COD2_db.PV = COD_VALUE.PV;
sys_meas_time2.DESC = sys_meas_time.DESC;
IF ( point3_flag.PV || point4_flag.PV ) == 0 THEN
sys_run_log = "系统循环测量周期定时器开启...";
SQLInsert(ConnectID,"dlhb_sys_log","sys_info");
sys_run_log = "";
#sys_interval_T.Start(); //系统循环测量周期定时器开启
ELSE
sys_run_log = "CODmax测量间隔定时器开启...";
SQLInsert(ConnectID,"dlhb_sys_log","sys_info");
sys_run_log = "";
#point_interval_T.Start(); //CODmax测量间隔定时器开启
ENDIF
//ELSE
//COD2_db.PV = 0;
ENDIF
IF PLC_start_sampl.PV ==3 THEN
COD3_db.PV = COD_VALUE.PV;
sys_meas_time3.DESC = sys_meas_time.DESC;
IF point4_flag.PV == 0 THEN
sys_run_log = "系统循环测量周期定时器开启...";
SQLInsert(ConnectID,"dlhb_sys_log","sys_info");
sys_run_log = "";
#sys_interval_T.Start(); //系统循环测量周期定时器开启
ELSE
sys_run_log = "CODmax测量间隔定时器开启...";
SQLInsert(ConnectID,"dlhb_sys_log","sys_info");
sys_run_log = "";
#point_interval_T.Start(); //CODmax测量间隔定时器开启
ENDIF
//ELSE
//COD3_db.PV = 0;
ENDIF
IF PLC_start_sampl.PV ==4 THEN
COD4_db.PV = COD_VALUE.PV;
sys_meas_time4.DESC = sys_meas_time.DESC;
sys_run_log = "系统循环测量周期定时器开启...";
SQLInsert(ConnectID,"dlhb_sys_log","sys_info");
sys_run_log = "";
#sys_interval_T.Start(); //系统循环测量周期定时器开启
//ELSE
//COD4_db.PV = 0;
ENDIF
IF sys_meas_flag.PV == 1 THEN
sys_meas_log.DESC = IntToStr(PLC_start_sampl.PV,10) + "号取样口自动测量";
ENDIF
IF sys_meas_flag.PV == 2 THEN
sys_meas_log.DESC = IntToStr(PLC_start_sampl.PV,10) + "号取样口手动测量";
ENDIF
SQLInsert(ConnectID,"dlhb_meas_group","meas_group");
sys_meas_log.DESC = "";
COD_meas_flag.PV = 0;
sys_meas_flag.PV = 0;
ENDIF
ENDIF