⑴ 怎么控制各种阀门和有搅拌的存储罐---力控组态软件
力控是一款监控组用软件。本身并不具备编写控制逻辑的功能。
如果非要用力控软件的话,你可以安装“力控pStrategy™-通用控制策略”软件,这也是一款上位软件,通过使用力控自配的控制逻辑模块,对控制过程进行组态。这时候PC充当了控制器的角色。但另外需要你的PC配置采集卡,I/O卡等设备。
具体可以参考北京三维力控官方网站。
⑵ 力控如何设计一个开门关门的画面,脚本如何编辑,求指点!
如图所示(7个图),先放上两个矩形,两个按钮,和三个文本。设置两个文本为固定字符。设置两个按钮,为按下开松开关,变量分别为open.pv和close.pv。设置第三个标签为模拟输出,变量为data.pv。设置两个矩形为水平拖动,依次设置参数,如图5,6。然后编辑工程运行脚本。如图7。完成。
望采纳。。。。。。
⑶ 力控数据库组态后再脚本编辑器时仍要定义中间变量
在利用力控进行数据库操作时,可能因为少许的错误导致力控与数据库之间不能交互,因此采用SQLLastError()函数显示最后一条数据库操作错误,通过该错误提示即可逐步完成数据库操作
一、力控组态和数据库交互时可能出现问题的地方:
1、如果利用关系型数据库SQL Server
2000存入力控产生的数据,必须在组态中建立绑定表。在建立过程中,字段名必须和SQL Server
2000中数据表中的字段名字相同,否则不能数据的传递;
2、建立的绑定表的名字最好不要和SQL Server 2000中数据表的名字相同,否则也不能传递数据;
3、建立数据库操作时,可以在动作条件中写入脚本,写脚本时应注意绑定表和SQL Server
2000中数据表的前后关系,应该是SQL Server 2000中数据表在前边,绑定表在后边才可以。
二。检查数据库操作错误的时候,可以利用下边方法进行:
1、首先在力控组态中定义一个字符型的中间变量ErrorMe
2、打开脚本编辑器,例如在写条件动作的脚本时,选择SQLLastError()函数,确定把最后一条数据库操作错误存放到ErrorMe中;利用MsgBox()函数以对话框的形式显示错误信息即可
SQLLastError(ErrorMe);
MsgBox(ErrorMe)
⑷ 谁能跟我说一下力控组态软件的脚本编辑用什么语言编写
这个脚本是类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
⑸ 力控脚本如何去编制
力控脚本定义:
脚本语言,脚本语言或扩建的语言,是一种编程语言控制软件应用程序。 “脚本”往往被视为有别于“程序” ,执行独立于任何其他的应用。在同一时间,他们是有别于核心代码的应用,这是通常的书面在不同的语言,和现正接触到最终用户,使他们的行为的应用,以适应用户的需要。脚本往往是,但并非总是解释,从源代码或“半汇编” ,以字节这是解释,不同的应用,他们的相关,这是传统的编制本土机器码为系统上运行他们。脚本语言几乎总是在嵌入式应用与它们相关的。
命名为“脚本”是来自书面脚本的表演艺术,在这种对话是订下要发言,由人类行为者。早期的脚本语言通常被称为一批语言或工作控制语言。例如早期的脚本语言的建立是为了缩短传统的编辑-编译-链接-运行的过程。
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文件后,你的程序用这种规则来理解编写人的意图,并作出回应.那么,这一套规则就是脚本语言.
这是我的回答 祝你好运~~
⑹ 力控组态软件中的脚本编辑器是什么怎么理解
力控我没用用过
不过跟MCGS和亚控等组态软件应该一样
脚本编辑器就是当你运行你设计的组态软件时立即在后台执行脚本里的语句
可以理解C++中的成全局变量
⑺ 力控下面的脚本如何写
你整理下你的问题,是3,5,8吗 数值是什么含义
⑻ 在打开力控系统的时候报界面脚本赋值语句左端应为变量请高手指点
是的,左端为变量,例如a.pv=2,意思就是将2赋值给a.pv这个变量,如果是a.pv=5,那就是将5赋值给a.pv这个变量,如果两个同时出现,例如a.pv=2;a.pv=5,那a.pv最后是5
RUN.PV==1是 RUN.PV这个变量已经等于1了,肯定不对,例如你想写当RUN.PV等于1的时间STOP.PV等于0就可以写
if RUN.PV==1 then STOP.PV=0
endif
⑼ 三维力控组态软件的脚本编写要用VB语言,请问要怎么学习vb啊,是全部学还是只学里面的基础语言
力控的脚本语句实际都是简化的,比VB简单多了,而且每个语句都有说明的,你可以看下力控的帮助说明,每个语句都有例子,看看就明白了。在安装完力控软件后,在软件内有几个例子,自己可以好好看下,力控的例子里面实际不光有IF、switch等语句,还有力控自己的面向对象的语句,例如力控的画面中的每一个图标单元都有自己的属性和函数,都可以通过这些属性对象(对应的函数)来定义和读取。
⑽ 力控组态软件脚本逻辑与和逻辑或怎么编写
须先安装三菱的MX Component 软件,由于此驱动支持多种通讯方式(比如A 系列编程口、Q 系列编程口等),只要是在Communication Setup Utility 中能够配置成功的设备及通信方式,就可以使用该驱动程序进行数据采集。力控组态软件如何与三菱PLC通迅