中 文 | Engish
首 页 |
公司信息
|
产品信息
|
技术与服务
|
工程服务
|
资料下载
|
联系我们
|
诚聘英才
|
常见问题
栏目分类
常见问题
  当前位置:脚本函数常见问题
 
脚本函数常见问题

脚本函数
1. 如何使用多个布置?
可以将工厂的某个车间或相对独立的控制流程使用一个布置,车间的控制画面在该布置
中切换。当从主控画面进入各个车间的控制流程时,打开响应的布置即可。打开布置有两种方法
方法一:放置一按键,双击该按键在“属性”栏中,将按键类型选为“9-打开布置”,在按键特性中选择将要打开的布置名称。
方法二:可以使用loadframe函数,该函数的使用方法请参看说明书或联机帮助文件。

2. 如何打开一个图页?
方法一:放置一按键,双击该按键在“属性”栏中,将按键类型选为“7-图页弹出”,在按键特性中选择将要打开的图页名称。
方法二:可以使用PopPage函数,该函数的使用方法请参看说明书或联机帮助文件。

3. 如何用按钮切换图页?
1).建图页变量 Page
2).加入按钮‘前进’‘后退’
在按钮的‘鼠标抬起’中分别加入
Page.dValue0 := true;
if Page.aValue1<Page.aValue0 then Page.aValue1 := Page.aValue1+1;
Page.dValue0 := true;
if Page.aValue1>0 then Page.aValue1 := Page.aValue1-1;

3).编辑图页变量,在图页的扫描中加入
// aValue0 : 页总数 要根据总页数赋初始值
// aValue1 : 当前页号
// dValue0 : 发生翻页事件
if Page.dValue0 then begin
Page.dValue0 := false;
Case Page.aValue1 of
0 : begin
loadpage('画面区','反应车间');
end;
1 : begin
loadpage('画面区','包装流水线');
end;
2 : begin
loadpage('画面区','管道图');
end;
3 : begin
loadpage('画面区','插件演示');
end;
4 : begin
loadpage('画面区','基本图素');
end;
5 : begin
loadpage('画面区','基本控制');
end;
end;
end;
4. 如何显示DHTML格式的帮助文件?
例:帮助文件的名字是:controx.chm
添加按钮。修改'按键抬起'脚本。StartApp('hh controx.chm');

5. 脚本语言赋值时应注意什么?
一定要注意两边的变量类型是否一致,尤其注意当将浮点数赋值给整数值时要用Trunc或Round函数转换。

6. 十进制如何转成十六进制
用函数FormatInteger(’%X’,TRUNC(v1.avalue0));
例如FormatInteger(’%X’,TRUNC(10))的值为‘A’;

7. 十六进制如何转成十进制
例如:strtointdef('$df',0);

8. 如何把单个字符转成ASCII码
例如:OrdChar ('A');//结果为65

9. 如何把ASCII码转成相对应的字符
例如:OrdChar ('A');//结果为65

10. SQL函数有何功能?
开物中SQL函数主要是读写数据库的一些函数,常用的是SQLExecute。这个是SQL语句执行函数。
SQLSERVER举例:
iReturn.Value:=SQLExecute('SQL','','yuyang','NorthWind','sa','sa','Insert Into Myhistory(ADateTime,pv1,pv2,pv5) values('+''''+DateTimeToStr(now)+''''+','+floattostr(pv1.value)+','+floattostr(pv2.value)+','+floattostr(pv5.value)+')');
ACCESS举例:
iReturn.Value := SQLExecute('MDB','','','D:\dbtest.mdb','','','Insert Into test(dtDateTime,i,s) values('+''''+DateTimeToStr(now)+''''+','+floattostr(pv1.value)+','''+floattostr(pv2.value)+''')');
ODBC举例:
iReturn.Value := SQLExecute('ODBC','dbtest','','','','','Insert Into test(dtDateTime,i,s) values('+''''+DateTimeToStr(now)+''''+','+floattostr(pv1.value)+','''+floattostr(pv2.value)+''')');

11. 开物中如何读写EXCEL?
写excel函数:
function WriteExcel(FileName,datas1,datas2,datas3,datas4:string;SheetsNo,r1,c1,r2,c2,r3,c3,r4,c4:integer): Integer; stdcall;说明:将数据写入Excel中某个表单(sheet)的指定单元格,每次可以写入4个数据;
参数:
FileName : Excel文件的路径及名称。
Datas1,Datas2,Datas3,Datas4: 要写入的数据。
SheestNo: Sheet表单序号。
R1,c1: 指定单元格1 的行号和列号。对应写入的数据是Data1
R2,c2: 指定单元格2的行号和列号。对应写入的数据是Data2
R3,c3: 指定单元格3 的行号和列号。对应写入的数据是Data3
R4,c4: 指定单元格4 的行号和列号。对应写入的数据是Data4
返回值:整形值
0:正常完成
1:执行出现异常
2:文件不存在
例子:WriteExcel(GetProjectPath+'hh.xls',FLOATTOSTR(x.Value),FLOATTOSTR(x2.Value),FLOATTOSTR(x3.Value),FLOATTOSTR(v2.value),1,2,3,2,4,2,5,2,6);

读excel函数:
Function ReadExcel(FileName:string;SheetsNo, R1, C1:integer;var sData:string): Integer;
说明:从Excel文件的指定单元格中取得数据;
参数:
FileName : Excel文件的路径及名称。
SheestNo: Sheet表单序号
R1,C1:单元格的行号和列号
sData:读出的数据;
返回值:整形值
0:正常完成
1:执行出现异常
2:文件不存在
举例:
var ddd:string;
begin
ReadExcel(GetProjectPath+'hh.xls',1,2,3,ddd);
d.Value:=ddd;
end;

12. 开物中的“gettickcount”是什么意思?
gettickcount是一个时间函数,返回Windows启动后的毫秒数。

13. 开物的强大接口
开物提供了自定义脚本函数的接口,用户可以编写函数生成.SCP文件,放到"...\Turingcontrol\Plugins\"下。

14. 工程中需要一个随机函数如何产生?
开物中有随机函数名字叫random()函数,该函数在帮助中没有列出,在开物脚本编辑器的函数列表“数学函数”中可以找到。

15. 当PLC内有程序时,还能直接对输出通道赋值?如何实现?
如果PLC内程序对该通道有实时赋值刷新,则不能对该通道直接赋值。可在逻辑语句中加一个寄存器,通过改变该寄存器状态实现控制该通道。

16. 图页中做的脚本扫描程序在图页关掉后停止运行,如何实现不停运行。
在“环境”设置里自动加载该图页。
 

 
|
|
|
|
|
|

版权所有@ 北京图灵开物技术有限公司
电话:010-82825388