wincc经典问题.docx
- 文档编号:9116664
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:13
- 大小:20.34KB
wincc经典问题.docx
《wincc经典问题.docx》由会员分享,可在线阅读,更多相关《wincc经典问题.docx(13页珍藏版)》请在冰豆网上搜索。
wincc经典问题
答:
编写如下C-Action:
#pragmacode("");
BOOLBeep(DWORDdwFreq,DWORDdwDuration);
#pragmacode();
Beep(500,500);
2、问:
如何通过C脚本来确定报警信息
答:
首先必须在画面中插入报警控件,可以用如下两种方式来确认信息:
(1)、确认单条信息
4版本和高于此版本的WinCC
BOOLOnBtnSinglAckn(char*lpszPictureName,char*lpszObjectName)
5版本和高于此版本的WinCC
BOOLAXC_OnBtnSinglAckn(char*lpszPictureName,char*lpszObjectName)
(2)、确认报警窗口所有可见的报警
4版本和低于此版本的WinCC
BOOLOnBtnVisibleAckn(char*lpszPictureName,char*lpszObjectName)
5版本和高于此版本的WinCC
BOOLAXC_OnBtnVisibleAckn(char*lpszPictureName,char*lpszObjectName)
3、问:
如何在WinCC中读取系统时间
答:
通过如下C-Action:
#pragmacode("");
VoidGetLocalTimes(SYSTEMTIME*lpst);
#pragmacode();
SYSTEMTIMEtime;
GetLocalTime(&time);
SetTagWord("Varname",;
SetTagWord("Varname",;
SetTagWord("Varname",;
SetTagWord("Varname",;
SetTagWord("Varname",;
SetTagWord("Varname",;
SetTagWord("Varname",;
SetTagWord("Varname",;
4、问:
如何经Windows对话框设置日期时间
答:
通过调用Windows对话框实现。
具体如下:
#include""
voidonClick(char*lpszPictureName,char*lpszObjectName,
char*lpszPropertyName)
{ProgramExcute("c:
\\win98\\");}
其中执行的程序路径,需根据具体情况填写。
5、问:
如何在WinCC中调用SQL语言
答:
1、创建一个SQL文件,此文件在ISQL中建立,文件内包含所要执行的SQL语句。
Windows对话框实现。
具体如下:
2、在WinCC中用CScript调用上述SQL文件,如下所示:
#include""
voidOnLButtonDown(char*lpszPictureName,
char*lpszObjectName,
char*lpszPropertyName,
UINTnFlags,intx,inty)
{
char*a="c:
\\siemens\\common\\SQLANY\\ISQL-q-b-c
UID=DBA;PWD=SQL;DBF=E:
\\testsql\\;
DBN=CC_testsql_99-12-03-12:
48:
26R;READ
E:
testsql\\";
Printf("%s\r\n",a);
ProgramExcute(a);
}
下面是一个简单的SQL文件内容:
select*frompde#hd#t#test;
outputtoe:
\\FORMATascii
注意:
文件名及路径中不要带空格。
6、问:
如何整点启动归档
答:
在"GlobleScript"下的Projectfunction编写程序函数:
cyclicarchive
BOOLcyclicarchive()
{
#pragmacode("");
voidGetLocalTime(SYSTEMTIME*lpsz);
#pragmacode();
SYSTEMTIMEtime;
Intt1;
GetLocalTime(&time);
T1=;
If(t1==00)
{
SetTagBit("startarchive",1);
Return(BOOL)(GetTagBit("startarchive"));
}
}
在Tagloging中的"Propertiesofprocesstag"中的"archivetag"Tab下的Archivetype选择Cycle-selective,在"Event"标签下的"StartEvent"内选择cyclicarchive函数。
7、问:
HowcanIsetandresetaWinCCvariablebymouseclickwithCscript
答:
ThefollowingfunctionshowshowyoucanalternatelysetandresetaWinCCvariablebymouseclick.
#include""
voidOnClick(char*lpszPictureName,char*lpszObjectName,char*lpszPropertyName)
{
BOOLz;
z=GetTagBit("MyBitVariable");
if(z==0)
SetTagBit("MyBitVariable",1);
else
SetTagBit("MyBitVariable",0);
}
8、问:
HowcanIprogramawaitingfunction(Sleep)inWinCC
答:
Thefollowingsampleprogramshowshowthe"Sleep"isused.
#pragmacode("")
voidSleep(intmilliseconds);
#pragmacode()
Sleep(1000);Requestsfortheinterruptedfunctioncannotbeprocessedduringthistime.
9、问:
HowcanIoutputaSIMATICtimerminutesandsecondsinWinCC
答:
IfyouwanttooutputaSIMATICTimerinminutesandsecondsinWinCC,theninWinCCpleaseuseastatictextintheGraphicsDesignertowhichyouinterfacethefollowingaction:
char*_main(char*lpszPictureName,char*lpszObjectName,char*lpszPropertyName)
{
char*p;
DWORDhilf;
intmin,sec;
p=SysMalloc(10);
hilf=GetTagDWord("Time");
min=hilf/60000;
sec=hilf%60000/1000;
sprintf(p,"%dmin%dsec",min,sec);
returnp;
}
The"Time"variablelinkedtotheI/Ofieldmusthavethefollowingproperties:
•Datatype"32-bitvaluewithoutsign"
•Formatadaptation"DwordToSimaticBCDTimer"
•Address:
dataarea"Times"andaddressing"Word"
10:
快捷地切换画面
通常要将所有的设备都显示在一张画面里是不可能的,所以将设备按照处理工艺的功能步骤分级在多张画面内,以一个污水处理厂为例分为电泳线、前处理线、生化线、加药线等,之间的切换使用按钮的鼠标动作来实现。
这对于用WinCC现成的鼠标动作来实现是很简单的,但是不是要在每张图上都使用相同数量且位置排列顺序一致的按钮呢(出于对操作的一致性考虑,不能让操作人员在不同的图上,不同的位置找想要操作的按钮)这个问题的解决我们使用WinCC的脚本编程,在按钮动作中调用它的内部函数来实现。
首先,组态一幅背景画面,其中包括要显示的静态文本、OLE(例如,时钟)、所有的图形切换按钮及推出关机按钮。
第二,在背景画面中插入智能对象(SmartObject)中的画面窗口(PictureWindow),并且使其的尺寸与其分级画面相同。
第三,在相应的切换按钮的属性->事件->鼠标动作中编写如下C语言脚本代码:
#include\"\"
voidonClick(char*lpszPictureName,
char*lpszObjectName,char*lpszPropertyName)
{
SetPictureName(\"背景画面\",\"画面窗口\",\"电泳处理线\");
}
建一个数据块,其中有一个"DATE_AND_TIME"类型的变量和一个布尔变量。
当元素"Flag"在WinCC中被置1,程序就调用系统函数SFC0"SET_CLK"。
DB1中的触发变量"Flag"(在WinCC脚本中被SetTagBitWait("DB1_FLAG",TRUE)置1。
因此仅当此C脚本在WinCC中被调用时,时间才被设置。
SFC0必须先添加到Step7程序的块文件夹中。
在此段程序中,DB块中的各个时间变量被写到作为SFC0参数的"DATE_AND_TIME"类型的本地变量"DateAndTime"中。
用"SET_CLK"设置完时钟后,触发变量"Flag"被复位。
注意:
在此段程序中,本地变量"DateAndTime"存储在以0为起始地址的本地数据堆栈中。
如果不得已要把这个变量分配到别的地址,同时对传送指令参数化时,必须要考虑到地址分配的问题。
2.为“年”新建一个"Unsigned8-bitvalue"类型的变量,对其进行格式变换ByteToBCDByte,然后为其在DB块中选择相应的字节地址:
在WinCC中创建剩下的变量。
选择"Unsigned16-bitvalue"类型然后改变格式为WordToBCDByte,然后在DB块中选择实际的字节地址。
3.最后,在WinCC中创建一个C脚本来读取系统时间并进行拆分,然后把它们写到DB1中。
S7PLC中的时钟设置是被脚本中的"DBI_FLAG"变量触发的。
评论人:
roland1314评论日期:
2006-4-1110:
53
21:
WINCC--如何在程序中动态修改用户密码
1、点击“开始”--》“设置”--》“控制面板”--》“管理工具”--》“数据源(ODBC)”,打开ODBC数据源管理器
2、在用户DSN页面的用户数据源中找到与当前项目所关联的一项,其名称为“CC_项目名_项目建立日期时间”,记下该项的名称
3、在脚本中加入以下代码:
#pragmacode("")
#include""
#pragmacode()
LPCMN_ERRORerr;STEP7项目文件中插入一个OS站,然后把它改名为已有的WinCC项目名称。
2.在STEP7项目里删除因仅插入OS站而产生的WinCC项目文件,其位置在STEP7项目文件夹里的wincproj文件夹下,例如:
d:
\siemens\STEP7\S7proj\STEP7_Integration\wincproj\'NameoftheOS'
3.最后在项目复制器里用’Saveas’把已有的WinCC项目文件存储到STEP7项目路径下。
项目复制器位于开始菜单项"Start>SIMATIC>WinCC>Tools"。
注意:
对于集成STEP7项目里的WinCC项目,你也可以使用压缩工具(Packer)来归档WinCC项目。
评论人:
roland1314评论日期:
2006-4-1110:
53
34:
wincc怎样和s7plc-sim连接
要访问PLCSIM模拟软件,必须按如下方法操作,按照以下的顺序来安装程序:
STEP7V
PLCSIM以上
WinCC
选择用户自定义安装。
对于SIMATICWinCCV5
SP1及以下版本的用户,在“通讯”组件下,必须选择“S7Dos”和“对象管理器”组件。
对于SIMATICWinCCV5
SP2及更高版本的用户,“S7Dos”是自动安装的。
就是说不再需要在“用户自定义安装”下选择该选项。
在PG/PC界面上做如下设置:
在控制面板中双击“设置PG/PC界面”。
在“应用程序的访问点”域中,选择“MPI
(WinCC)”。
在“使用的界面参数”域中选择“<无>”。
启动应用程序STEP7:
启动SIMATIC管理器
启动PLCSIM
打开要模拟的项目或组态一个项目。
在项目中添加一个OS。
在PLCSIM中加载项目。
启动WinCC并创建一个新项目或打开已有的项目。
WinCC
添加“SIMATICS7PROTOCOLSUITE”到变量管理器。
在MPI下添加一个新连接。
右击该连接然后选择“属性”。
点击“属性”按钮。
在“连接”标签中指定MPI地址和已在STEP7中组态好的CPU的插槽。
确认所做的指定。
激活WinCC项目。
进入“开始>SIMATIC>WinCC>工具>通道诊断”。
在“通道连接”下可以显示连接的状态。
如果连接没能设好:
在WinCC资源管理器中的“系统参数-MPI>单元”中,启用选项“自动设置”。
在“系统参数-MPI>通道”中,取消“使用PLC的循环读取服务”选项。
wincc和西门子PLC仿真通讯需要PLCSIM,先将PLCSIM
运行,建立一个WINCC项目,使用MPI通讯即可,说白了跟MPI通讯一样,只是PLC是用PLCSIM在计算机上模拟的
但是有一点要注意的是,这种方式下不能使用输入区(I区),凡是有输入的地方都要用M区来代替
可以使用输入区(I区),只是有些特殊功能不能用。
35:
WINCC-如何使用自定义的对话框实现用户登录
在登录按钮中加处以下脚本:
#pragmacode("")
#include""
#pragmacode()
if(PWRTSilentLogin("username","PassWord"))
{
:
PWRTSilentLogin(GetTagChar("user"),GetTagChar("PassWord"))
当登录成功时,函数返回值为真;如登录失败,则返回值为假。
36:
WINCC-如何使用自定义的对话框实现用户退出
实现登陆:
#pragmacode(""
#include""
#Pragmacode()
PWRTlogin('1');
实现退出:
#pragmacode(""
#include""
#Pragmacode()
PWRTlogout();
37:
如何把GIF图片放到wincc中
首先插入这个ole控件,然后双击它,在GIF属性中选择您需要显示的GIF图片就可以了。
38:
如何将低版本创建的项目移植到中
将项目移植到WinCC的工作步骤:
WinCC与其以前的版本相比在数据组织方面有着显著的不同。
为了使在WinCCServicePack2或WinCC中创建的项目在WinCC中也能工作,项目数据必须首先通过移植作相应的调整。
为此,WinCC提供了一个项目移植器,用于自动移植项目的组态数据、运行系统数据和归档数据在移植之前,建议为原版本的项目做一个备份。
与此有关的信息参见WinCC信息系统中的主题“使用WinCC”>“使用项目”>“复制和归档项目”。
已归档的文件:
如果必须访问先前版本的归档数据,则必须将归档移植到WinCC。
请使用项目移植器移植归档数据和dBASEIII归档。
多用户项目:
为了使利用WinCCSP2或所创建的多用户项目在WinCC中能够正常工作,可进行如下操作:
移植系统中所有服务器上的单个多用户项目。
如果原来的项目使用了多客户机,则分别单独移植多客户机的项目数据。
正常操作中的冗余系统,不用取消激活操作就可在冗余系统中对项目进行升级。
此时,将按规定的次序升级服务器、客户机和多客户机。
章节“在正常操作中升级冗余系统”中提供了有关的详细说明。
警惕:
为了不影响系统操作,必须遵守所描述的步骤次序,且完成所有步骤时不能有任何长时间的中断。
早于WinCCServicePack2的WinCC版本:
对于早于WinCCSP2的WinCC版本所创建的项目,必须一步一步地进行移植,将系统先升级到WinCC,并移植项目。
安装WinCC,并使用项目移植器移植项目。
39:
中支持abplc的驱动吗
WinCC将不再提供下列通讯通道:
AllenBradleyDHDH+DH485
AllenBradleySerialDF1
ApplicomMultiProtocolInterface
GEFanucSNPSNPX
MitsubishiFX
ModbusProtocolSuite
ModbusSerial
SIMATICS5PMCEthernet
SIMATICS5PMCProfibus
SIPART
可以用OPC来替代。
某些通道需附加件的支持。
40:
WINCC的授权坏了,显示“AuthorizationSIK/SIMATICWINCCRT128PowerTagsisfaulty.”,重新安装显示已经存在此授权,请问要怎么处理
可以询问原来的销售商索要一个激活码,可以在authorsw中manageauthorization中右键单击选择“recoverautrorization”输入激活码激活授权即可。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- wincc 经典 问题