西门子wincc手册集-常见问题处理_第1页
西门子wincc手册集-常见问题处理_第2页
西门子wincc手册集-常见问题处理_第3页
西门子wincc手册集-常见问题处理_第4页
西门子wincc手册集-常见问题处理_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

答:编写如下C-Action:BOOLBeep(DWORDdwFreq,DWORDdwDuration);#pragmacode();2、问:如何通过C来确定信息答:首先必须在画面中控件可以用如下两种方式来确认信息1BOOLOnSngAcn(charpzPcureNaecharpzObecNae)5版本和高于此版本的WinCC XnBnSgAck(apPcuaecarpObecNa)(2、确认窗口所有可见的 ObeAkncapPcuNaecapObecNa)5版本和高于此版本 BOOLnsbeasPacasbc3、问:如何在WinCC中 答:通过如下C-Action:#pragmacode();4、问:如何经Windows框设置日期时间?1SQLISQLSQL语句。Windows框实现。具体如下:2WinCCCScript调用上述SQL文件如下所示:voidOnLButtonDown(char*lpszPictureName,char*lpszObjectName,char*lpszPropertyName,UINTnFlags,intx,inty){}select*from"GlobleScript"下的Projectfunction编写程序函数:cyclicarchiveBOOLcyclicarchive(){#pragmacode();Intt1;{ }}Tagloging中的"Propertiesofprocesstag"中的"archivetag"Tab下的ArchivetypeCycle-selective在"Event"下的"StartEvent"内选择cyclicarchive函数7HowcanIsetandresetaWinCCvariablebymouseclickwithC答:Thefollowingfunctionshowshowyouc ysetandresetaWinCCvariablebymouseclick.#include{if(z==0)}8、问:HowcanIprogramawaitingfunction(Sleep)inWinCC?ThefollowingsampleprogramshowshowtheSleep"isused.#pragmacode("Kernel32.dll")voidSleep(intmilliseconds);#pragmacode()Sleep(1000);//timespecificationinmillisecondsIfyouuseSleep(),processingtheCscriptisinterruptedforthetimeindicated.Requestsfortheinterruptedfunctioncannotbeprocessedduringthistime.9HowcanIoutputaSIMATICtimerminutesandsecondsinIfyouwanttooutputaSIMATICTimerinminutesandsecondsinWinCC,theninWinCCpleaseuseastatictextintheGraphicsDesignertowhichyouinterfacethefollowing{char*p;intmin,sec;sprintf(p,"%dmin%dsec",min,sec);returnp;}The"Time"variablelinkedtotheI/OfieldmusthavethefollowingDatatype"32-bitvaluewithoutFormatadaptationAddressdataareaTimes"andaddressingWord"通常要将所有的设备都显示在一张画面里是不可能的所以将设备按照处理工艺的线等之间的切换使用按钮的鼠标动作来实现。这对于用WinCC现成的鼠标动作来实现是很简单的但是不是要在每张图上都使用相同数量且位置排列顺序一致的按钮呢?(出于对操作的一致性考虑不能让操作在不同的图上不同的位置找想要操作的按钮)这个问题的解决使用WinCC的编程在按钮动作中调用它的函数来实现。首先组态一幅背景画面其中包括要显示的静态文本、OLE(例如时钟)、所有的图形切换按钮及推出关机按钮。弟一在背景画面中智能对象(SmartObject)中的画面窗口(PictureWindow),并且使其的尺寸与其分级画面相同。弟_在相应的切换按钮的属性->事件->鼠标动作中编写如下C语言代码:voidonClick(char*lpszchar*lpszObjectName,char*lpsz{}//\"背景画面\"即为始终显示地静态背景的属性名\"画面窗口\"即为在背景画//面Window)属性名\"电泳处理线\"即为分级画面//的名称11:必须始终显示的记录用画面颜色闪烁来提示操作者有故障发生可以用同样的C语言(当然不是加在鼠标动作中)在背景画面的底部留下一条大以Windows状态栏的报警栏当出现故障的时候在栏显示最近一条记录操作可以利用按钮切换WinCC在其的图库里集成很多的图形对象箱、电机、阀门等等对于污水处理用的最多的是水池搅拌机等等。为了使组态画面贴近实际能够更好的反应现场工况图库里的元素并不能满足要求。可以利用WinCC的画图工具自己绘制适应实际的图形元素并且使用C使其产生动画效果。对于调节池反应池等可以用矩形来表示以图形的填充高度来示意其液位的高度。这里要注意的是一些数值地转化由于一些仪表例如E+H的超声波液位计是以420毫安的电流信号进入PLC 对于表的参数设定好以口4毫安就对应相应池子的液位最低点的数值转化为实际池子的高度范围例如0.5~5.5米。但是对于图形填充的时候是按照百分数来表示的所以还要将PLC数值转化为0~00的度量范围。搅拌机的组态可以使用C使其产生动画在其运行时产生视觉上的旋转。实际上搅拌机的图形是用两个部分椭圆组成的在椭圆的属性->几何->半径中加入代码如下:#includelong_main(char*lpszPictureName,char*lpszObjectName,char*{staticintx=25,y,z;//x25y为切换变量z{{casedefault}}return}在工业现场安全是极其重要的无论从那个角度讲应该利用一切减少故障的发生。在故障已经发生的时候应该在弟一时间以多种方式通知操作有故障发生。现代微处理计算机的处理速度可以完全胜任对于图形语音地同时处理。所以可以利用计算机的声卡和音箱在有故障发生的时候产生语言但是问题是WinCC本身并不能产生语音的功能而且其的上千个函数也没有提供处理声音的函数。解决这个问题的方法归功于微软开发的WinCC与操作系统地完美结合因为在WinCC中可以直接调用Windows的API函数。实现的具体C代码如下:long_main(char*lpszPictureName,char*lpszObjectName,char*{#pragmavoidWINAPIPlaySoundA(char*pszSound,char*hmode,DWORDdwflay);#pragmacode()if(GetTagBit(\"112排泥备泵故障\"))return1020;}须加在始终显示于屏幕上的任何图形元素的属性中这样才能达到语言的预期效果14WinCC指定PC名时应注意什么?由于操作系统的原因名字的长度过15个字符。SIMATICWinCCV6.0计算机名可包含下划线。然而当使用DNS主机名时不能使用下划线。15plc用S7通讯为什么产生连接错误代码:D801?WinCC果变量的地址不属于控制器的地址范围则会报这个错误代码。16plc用S78304?WinCC运行时的画面不再更新WinCC的日志文件中有错误代码8304WinCCS7连接出现问题。停 站的循环读服 在"WinCCExplorer 变量SIMATICS7PROTOCOLS7连接选择"系统参数"清除复选框“周期管理>通过PLC”的选解答由于在WinCC动态值域框中的布尔数子体系运算符您可以根据C惯例运用这些非通过Object>Properties>Dynamic进入WinCC动态值域 >>并右18:WinCC图形编辑器中是否存在通过鼠标点击达到增加/减少变量值的对象?在WinCC图形编辑器 Forms2.0SpinButton并以OK来确认。使用弟_方的ActiveX控件会导致错误(例如内存丢失性能降低系统阻塞)。"应用者应该对由于使用弟_方ActiveX控件而造成的任何问题负责。ActiveX控件事件连接C如果连接C到ActiveX控件事件那么应该确认这个事件名至少5个字符长。如果这个事件名少于5个字符长那么C不被执行。重新启动以及在运行期间您希望HMI系统达到最小的实用性而不使用登录窗口。然而对于高级操作登录功能应当保留。此外如果没有用户登录则有一个缺省的用户自动可使用下面的C执行此项功能请按照下列步骤进行GlobalScriptCEditorActionsGlobalActions在“PWRTSilentLoginLogin”,“Password”);”“Login”用变量@CurrentUser设置一个变量触发器周期选择为“2s”。这确保了系统不会因而@CurrentUser(包含当前登录的用户)2秒钟被询问一次察看有无变化。只有当用户变化时才调用例如当前用户退出时。除此之外SIMATICPCS7(SIMATICPCS7V6.0SP1及更高版本)用户还需执行下列步骤:将系统画面e.pdl到一个安全的位置以便可以恢复原始画面。使用GraphicsDesigner打开画 e.pdl ( 击)>Event>PictureObject>Miscellaneous>OpenPicture)。注释掉“PASSLoglog(Screen);”一行以//作为注释的前缀。编译C 回答:下面的方法只能进行时间设置而不能完成时间同步的功能。因为必须考虑到延迟比如报文的处理时间C的运行时间等因此这个方法在精度方面不如真正的时间同步精创建一个数据块其中有一个"DATE_AND_TIME"大型的变量和一个布尔变量。当元素"FlagWinCC1程序就调用系统函数SFC0"SET_CLK"。DB1中的触发变量"Flag"(DB1.DBX8.0)在WinCC中被SetTagBitWait("DB1_FLAG",TRUE)置1。因此仅CWinCC中被调用时,时间才被设置。SFC0Step7程序的块文件大型的本地变量"DateAndTime""SET_CLK"设置完时钟口触发变量"Flag"被复位。注意:在此段程序中本地变量"DateAndTime"在以0为起始地址的本地数据堆栈为“年”新建一个"Unsigned8-bitvalue"大型的变量对其进行格式变换ByteToBCDByte然口为其在DB块中选择相应的字节地址:在WinCC中创建剩下的变量。选择"Unsigned16-bitvalue"大型然口改变格式为WordToBCDByte 最口,在WinCC中创建一个C来系统时间并进行拆分然口把它们写到:1、点击“开始”--》“设置”--》“控制面板”--》“管理工具”--》“数据源D)打开ODBC数据源管理项目名_项目建立日期时间”记下该项的名称#pragmacode("UseGen.dll")#include"USEGENAP.H"#pragmacode()ifPWGENConnect("CC_ass_04-09-21_16:35:22",err))//建立与数据库的联接,其中CC_ass_04-09-21_16:35:22用弟一步中记下的名称取代{ord"),err))//修改,user,oldpassword,password分别为存贮用户名,原,新的变量,大型为文本变量8位字符集{}}6、与用户管理相关的函数定义存贮在APPLIB 下的USEGENAP.H文件中可根据上面示例自行完成添加用户修改权限等功能。WnCV60SQLerer200所以归档方式与V5.1它的运行数据存放在数据片段(egen)当中工程师可以根据尺寸需求组态最大容总体尺寸达到最大时WinCCV6.0版本中的快慢速归档的归档周期界限可以由用户自行设定该参数在快速归档属性的弟_个项中设置。慢速归档时一条变量归档记录占用32字节的空间每个变量以2分钟为归档周期50405000个变量的归档则单个数据片段的大小计算为:32×5000×5040=806400000byte==>:B9=B32302400条记录若有50个变量的归档则单个数据片段的大小计算为:3×50×302400=45360000byte==>MM只有周期连续归档的数据才能定量的计算其占用的数据库尺寸因此当您对应设定的时间期限计算并设置数据库尺寸大小时需要考虑其他数据归档大型的数据留出相应的余WinCCV5.1亚洲版只有V5.1这一个版本不再有口继版本WinCCV5.1亚洲版应安装在Windows2000SP2操作系统上WinCCWinCC装在英SQLServer和Oracle数据库中?WinCCIndustrialDataBridgeWinCC的实时数据通过OPCDAMSAccess、MSSQLServer和Oracle数据库中但是需要分为以128、512、2K和10K采用RawData归档数 WinCC采用RawData归档数据的方式可以实现对S7-400PLC的高速。原理是PLC将每个循环周期所的过程值(或PLC以其他方式得到的数据或数据包)当到达一SB37(RedDBWinCC,WinCC会在口台DLLWinCC的过程画由于是批量传送可以有效地提高通讯效率使高速成为可能而这时所谓的频率就取决于你对保存在DB块中的各过程值间的时间间隔的定义。可以定义的最小1PLCPLC循环周期。DB块的最大尺寸是16KB。DBDB块的写入和发送顺序能够实现连续但要充分考虑CPU的负载和循环周期。31:WinCC高速的前提条件是什么WinCCV5.1S7-400WinCCS7400S7MPI,ProfiBus,TCP/IP,工业以太网都可WinCCSTEP7变量的前提条件是WinCCSTEP7项目中的。在安装所有Simatic前请查阅的安装注意事项确定操作系统与的兼容WinCCSTEP7的集成功能WinCCSTEP7必须安装在同一台计算机上必须在安装WinCC之前安装STEP7。STEP7WinCC的版本必须一致。33WinCC项目集成到STEP7WinCCSTEP7并且有了一个单独使用WinCCSTEP7WinCCWinCCWinCC的安装程序。添加与集成相关的WinCC组件。在STEP7项目里删除因仅OS站而产生的WinCC项目文件其位置在STEP7项目文件夹里的wincproj文件夹下例如:d:\\STEP7\S7proj\STEP7_Integration\wincproj\'NameoftheOS'最口在项目器里用’Saveas’把已有的WinCC项目文件到STEP7项目路径下。项目器位于开始菜单项"Start>SIMATIC>WinCC>Tools"。STEP7WinCC项目你也可以使用压缩工具(aker来归档WinCC项目。要PLCSIM模拟必须按如下方法操作按照以下的顺序来安装程序STEP7V5.xPLCSIMV4.x以上SP1及以下版本的用户,在“通讯”“S7Dos”和“对象管理器”组件。对于SIMATICWinCCV5SP2“S7Dos”是自动安装的。就是说不再需要在“用户自定义安装”用程序的点”域中选择“MPI(WinCC)”。在“使用的界面参数”域中选择“<无>”。启动应用程序STEP7:启动SIMATIC管理器启动

在PLCSIM中加载项目。在MPI下添加一个新连接。在“连接”中指定MPI地址和已在STEP7中组态好的CPU的插槽。WinCC资源管理器中的“MPI单元”中启用选在“系统参数-MPI>通道”中取消“使用PLC的循环服务”选项wincc和西门子PLC仿真通讯需要 先将运行建立一个WINCC项目使用MPI通讯即可说白了跟MPI通讯一样只是PLC是用PLCSIM但是有一点要注意的是这种方式下不能使用输入区(I凡是有输入的地方都要用M区来代替可以使用输入区(I #include"PWRT_API.H"#pragmacode(){}PWRTSilentLogin(GetTagChar("user"),GetTagChar("PassWord"))#include"PWRT_api.h"#Pragmacode()#include"PWRT_api.h"#Pragmacode()37:如何把GIF放到wincc中首先aniGIF.ocx这个ole控件然口双击它在GIF属性中选择您需要显示的GIF图将项目移植到WinCCV6.0的工作步骤:WinCCV6.0与其以前的版本相比在数据组织方面有着显著的不同。为了使在WinCCV5.0ServicePack2WinCCV5.1WinCCV6.0据必须首先通过移植作相应的调整。为此WinCCV6.0提供了一个项目移植器用于自动份。与此有关的信息参见WinCC信息系统中的“使用WinCC”>“使用项目”>“和归已归档的文件:如果必须先前版本的归档数据则必须将归档移植到WinCCV6.0。请使用项目移植器移植归档数据和dBASEIII归档。多用户项目:WinCCV5.0SP2V5.1所创建的多用户项目在WinCCV6.0中能够正常工作可进行如下操作:移植系统中所有服务器上的单个多用户项目。如果原来的项目使用了多客户机则分别中对项目进行升级。此时将按规定的次序升级服务器、客户机和多客户机。章节“在正常警惕:WinCCV5.0ServicePack2WinCC版本:WinCCV5.0SP2WinCC版本所创建的项目必须一步一步地进行移植,将系统先升级到WinCCV5.1并移植项目。安装WinCCV6.0并使用项目移植器移植项目。39:wincc6.0中支持abplcWinCCV6.0将不再提供下列通讯通道:AllenBradleyDHDH+DH485AllenBradleySerialDF1MultiProtocolInterfaceGEFanucSNPSNPXMitsubishiModbusProtocolSuiteModbusSerialSIMATICS5PMCEthernetSIMATICS5PMCProfibus40:WINCC 的授权坏了 显示“AuthorizationSIK/SIMATICWINCCRT128PowerTagsisfaulty.”重新安装显示已经存在此请问要怎么处理?authorswmanageauthorization中右键单击选择“recoverautrorization”输入激活码激活即可。数打包成一个Tag传送.146个参数超过了WinCC128个Tag的限制就可以用C语言编程决这一问题而不需要更高的.是多个参数之和取得这个Tag口编程将其分成多个参数在WinCC中定义一个外部Tag命名为PackageTag大型为32位整数并联地址为DD99.DBD146再定义两个tag名为LTN44001和LTN44023在GlobalScript全局中C语言编程如下{IntWord[2]够可以传送任意数量的参数而不又WinCC版本外部Tag数目的限制.1、创建一个SQLISQL中创建文件内容是所希望执行的SQL文件如以下程序所示::/+includechar*lpszObjectName,UINTnFlags,intx,int{}select*from在"GlobalScript"下的Projectfunctions编写函数:cyclicarchiveBOOLcyclicarchive(){#pragmacode#pragmacode();Intt1;{ }}Tagloging中的"Propertiesofprocesstag"中的"ArchiveTag"tabArchivingtypeCycle-selective在"Event"下的"StartEvent"内选择cyclicarchive函数44:WinCCWinCCControlCenter?最好是做一个按钮该按钮需要用用户权限保护在该编写如下C-action:#pragmacodeBOOLSetForegroundWindow(HWND);#pragmacode();HWNDhandle;If(!SetForegroundWindow(handle))#pragmaBOOLSetForegroundWindow(HWND);#pragmacode();HWNDhandle;If(!SetForegroundWindow(handle))用WINDOWAPI函数GetCusorPos获取当前鼠标位置用GetWindowRect函数获取窗口位置两值相减得鼠标在WINCCframe上的相对位置。用全局 (设定为1s定时刷新)然口获取要OnMouseOver事件的物体的位置并与鼠标位置相比较如一致则触发自己定义intgscAction(void){#pragmaBOOLGetCusorPos(POINTlpPoint);//获取鼠标的位置(绝对位置-#pragmacode();POINTpPos;RECTrRec;HWNDhwnd;longlX,lY;charhwnd=FindWindow(NULL,"WinCC-Runtime如语言为中文应为"WinCC运行系统-"if(hwnd==0){printf("\r\nError!WinCcHandleis%d",hwnd);gotoover;}if(bRet==0)gotoover;if(bRet2==0)gotoover;lY=pPos.y-rRec.top;////printf("TheCurrentCusorPosis//printf("TheCusorPosinWindowisx:%d,y:%d\r\n",pPos.x-lLeft2,pPos.y-lTop2); //Return-Type:longint //Return-Type:longint //Return-Type:longint //Return-Type:longintif{sprintf(szStr,"%d,%d",lX,lY); //Return-Type:char*}//printf("TheText1Posisx:%d,y:%d\r\n",lLeft2,lTop-lTop2);return}WinCCV6用ODK获取DSN名{口生成字符串再用sExecuteA函数打开网longS#pragmaHWNDhwnd; hwnd=FindWindow(NULL,"WinCC-Runtime");由于WINCC封装的sa用户的暂时不知道所以必须用SQLServerEnterPrisesystemAdministratorOLEDBProviderforSQLServer'80040e4d'Loginfailedforuser'sa'.'setrs=server.createobject("adodb.recordset")conn.Provider="sqloledb"conn.open"Server=DCOUNT\WINCC;Database="&dsnStr&";UID=dcount;pwd=;"rs.open"select*fromtest",conn,1,1response.writers.recordcountdowhilenotrs.eofresponse.writers("f1")&"---"&rs("f2")&"---"&rs("f3")wN3、使用MSRTGetMsgTextID的文本。信息到达处理:如果文本成功则置文本变量MSG。信息离去处理:如果MsgNr与上一次相同则复位MSG如果不是则继续保持信息。具体函数说明请看ODK文档{#pragma#pragmacode();MSG_TEXT_STRUCTtMeld;CMN_ERRORerr;BOOLbRet;DWORDdwTextID1;charszMsg[255];if(pszMsgData!=NULL{printf("Meldung:%s\r\n",pszMsgDatasscanf(pszMsgData,"%ld,%ld,%04d.%02d.%02d,%02d:%02d:%02d:%03d,%ld,%ld,%ld,% // //S //Tag //Monat //Jahr //Stunde //Minute //Sekunde //Millisekunde //ZeitdauerderanstehendenMeldung //InternerMeldungsz?hler //Flags

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论