WinCCV7.3_C脚本手册

合集下载

Wincc画面制作---C脚本的使用

Wincc画面制作---C脚本的使用

Wincc画面制作---C脚本的使用相关介绍,请参考我的百度文库其它文章:Step7及Wincc新手入门教程:介绍西门子Step7和Wincc通讯方法Wincc画面制作--窗口的使用:介绍画面切换及弹出框Wincc画面制作--动态变化:动态跟踪等Wincc画面制作—报警:WinccAlarmControl及语音报警本文介绍Wincc画面编辑使用的一些C脚本,相关框架都基于上述文章,这里不再赘述。

1.调用同一个窗口画面实现不同的指令功能例如现在有3个阀,对每个阀的操作都是打开关闭,我们新建一个窗口画面来实现此功能。

我们先新建一个画面ValveConfirm.PDL,添加两个按钮如下:在HMI3上添加2个阀及一个画面窗口,画面窗口连接到ValveConfirm.PDL如下:对画面窗口设置如下:名称为Confirm,写脚本需要设置打开的窗口可否移动,大小,边框,标题等连接画面ValveConfirm.PDL标题连接内部变量,实现动态变化创建3个内部变量如下,Valve_Name用于打开画面窗口的标题,Valve_Open用于阀打开指令,Valve_Close用于阀关闭指令。

再创建6个变量连接PLC,如下,Valve1OpnCmd, Valve1ClsCmd, Valve1Opned用于阀1打开指令,关闭指令以及打开反馈信号,同理对阀2建立变量。

对阀1添加鼠标事件:y=GetTop(lpszPictureName,lpszObjectName)+35; x=GetLeft(lpszPictureName,lpszObjectName)+15; SetTop(lpszPictureName,"Confirm",y);SetLeft(lpszPictureName,"Confirm",x); SetVisible(lpszPictureName,"Confirm",1); SetVisible(lpszPictureName,"Confirm",1);SetTagChar("Valve_Name","阀1");SetTagChar("Valve_Open","Valve1OpnCmd"); SetTagChar("Valve_Close","Valve1ClsCmd");此段代码调整弹出框的位置,我们让它弹出的位置在阀的下方在当前画面HMI3显示对象名称为”Confirm”的画面;对象名称”Confirm”连接的就是ValveConfirm.PDL画面把内部变量“Valve_Name”赋值为“阀1”把内部变量“Valve_Open”赋值为“Valve1OpnCmd”; “Valve_Close”赋值为“Valve1ClsCmd”同样的,对阀2添加鼠标事件:同样的,在对阀2操作时,我们就把内部变量“Valve_Name”赋值为“阀2”;内部变量“Valve_Open”赋值为“Valve2OpnCmd”;“Valve_Close”赋值为“Valve2ClsCmd”接下来对ValveConfirm.PDL上的打开关闭按钮添加鼠标事件:阀1打开按钮按左键C代码阀1打开按钮释放左键C代码SetTagBit(GetTagChar("Valve_Open"),1);这段代码是先获取“Valve_Open”的值,然后再把获取的值置1,因此当打开阀1时,获取的Valve_Open值就是Valve1OpnCmd,最终就是把Valve1OpnCmd置;当打开阀2时,获取的Valve_Open 值就是Valve2OpnCmd,最终就是把Valve2OpnCmd置1SetTagBit(GetTagChar("Valve_Open"),0);同上当打开阀1时,最终把Valve1OpnCmd置0;当打开阀2时,最终把Valve2OpnCmd置0,通过以上2行代码,实现点击按钮给PLC发一次打开脉冲指令同样对关闭按钮添加C代码:若打开阀1,把Valve1ClsCmd置1;若打开阀2,把Valve2ClsCmd置1;若打开阀1,把Valve1ClsCmd置0;若打开阀2,把Valve2ClsCmd置0;再对阀背景颜色连接变量,打开是显示绿色:这个是阀1连接的变量,阀2同样处理最后PLC 侧编写代码:画面效果如下:阀1打开关闭阀2打开关闭1.弹出框在阀图标的下方2.点击打开,程序中M3.0来了下脉冲,模拟的反馈信号M3.7置1,阀图标变绿色同样的,点击阀2,弹出框会显示在阀2图标的下方2. 对按钮做密码保护实现功能为点击按钮需在弹出框输入正确密码才能打开画面。

wincc常用C脚本

wincc常用C脚本

1.用户注销:#pragma code ("useadmin.dll")#include "PWRT_api.h"#pragma code()PWRTLogout();2.用户登录:#pragma code ("useadmin.dll")#include "PWRT_api.h"#pragma code()PWRTLogin('c');3.关闭项目并退出wincc:ExitWinCC ();4.退出运行到wincc资源管理器:DeactivateRTProject ();按钮变三种颜色#include "apdefap.h"long _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName) {#pragma option(mbcs)if(GetTagWord("TX/ZSH001")==1)return 0x0000ff00;elseif(GetTagWord("TX/ZSL001")==1)return 0x000000ff;elsereturn 0x00c0c0c0;}一个调用按钮变色#include "apdefap.h"long _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName) {#pragma option(mbcs)if(GetTagWord("NewTag")==0)return 0x0000ff00;elsereturn 0x00ffffff;}5.结束监控并关闭计算机(会弹出确认对话框)HWND hWnd = NULL;//Author:Smartsysint iRet;hWnd = FindWindow(NULL,"WinCC-运行系统 - ");iRet=MessageBox(hWnd,"结束监控并关闭计算机","关闭操作站",MB_YESNO|MB_ICONWARNING|MB_APPLMODAL);if(iRet==IDYES)DMExitWinCCEx (DM_SDMODE_POWEROFF);6.点击事件弹出对话框,通过点击弹出对话框的确定和取消按钮实现对变量的置位或取消: int r;r=MessageBox(NULL, "YES为开,NO为关", "确定开命令:", MB_YESNO |MB_SYSTEMMODAL); if (r==IDYES)SetTagBit("TAGNAME",TRUE);elseSetTagBit("TAGNAME",FALSE);7.开显示关显示:(要在内部变量中建立三个二进制变量COLSE_DISPLAY、DISPLAY_NO和DISPLAY_COMMENT)// Funktion: Bit in Doppelwort setzen;if (GetTagBitWait("COLSE_DISPLAY")==1 ){SetTagBit("COLSE_DISPLAY",0);SetTagBit("DISPLAY_NO",0); //Return-Type: BOOLSetTagBit("DISPLAY_COMMENT",0);}else{SetTagBit("COLSE_DISPLAY",1);SetTagBit("DISPLAY_NO",1); //Return-Type: BOOLSetTagBit("DISPLAY_COMMENT",0);}8.开阀确认:BOOL a;a=GetTagBit("30T制水启动"); //Return-Type :short intif (a==0){if(MessageBox(NULL,"真的要启动制水吗?","操作提示",MB_YESNO|MB_ICONQUESTION|MB_SETFOREGROUND|MB_SYSTEMMODAL) == 6){ SetTagBit("30T制水启动",1);//Return-Type :BOOL}}else{if(MessageBox(NULL,"真的要停止制水吗?","操作提示",MB_YESNO|MB_ICONQUESTION|MB_SETFOREGROUND|MB_SYSTEMMODAL) == 6){ SetTagBit("30T制水停止",1);}}9.将WinCC运行画面最小化HWND WinCCHwnd;WinCCHwnd=FindWindow(NULL,"WinCC-Runtime - "); //如果运行语言为英文if (WinCCHwnd==0) WinCCHwnd=FindWindow(NULL,"WinCC-运行系统 - "); //如果运行语言为中文CloseWindow(WinCCHwnd);10.显示或不显示(其中hiddVtext为内部的二进制变量)if(GetTagBit("hiddVtext")==0) //Return-Type: BOOL{SetTagBit("hiddVtext",TRUE); //Return-Type: BOOL//Return-Type: BOOL}else{SetTagBit("hiddVtext",FALSE);}10.打开编辑画面的脚本#pragma option(mbcs)#ifdef RUN_ON_WEBNAVIGATOR#elseHWND hExplorerWindow= NULL;HWND hRuntimeWindow= NULL;hExplorerWindow= FindWindow("WinCCExplorerFrameWndClass",NULL);hRuntimeWindow= FindWindow("PDLRTisAliveAndWaitsForYou",NULL);if(hExplorerWindow){ShowWindow(hExplorerWindow, SW_MINIMIZE); // This entry is only necessary for Windows 2000ShowWindow(hExplorerWindow, SW_SHOWNORMAL);SetForegroundWindow(hExplorerWindow);}elseprintf("rn SetForeground failed");#endif11.如何在WINCC中制作一个保持型按钮方法1:if( GetTagBit("M10") )SetTagBit("M10",0);elseSetTagBit("M10",1);方法2:SetTagBit("M1.0",(SHORT)!GetTagBit("M1.0"));求反指令,如果为1点击变为0,如果为0点击变为1方法3:或者做两个按钮,按钮一:显示,直接连接m1.0,是--不显示,否--显示。

wincc常用C脚本功能

wincc常用C脚本功能

..用户注销:#pragma code (%useadmin.dll)#include PWRT_api.h#pragma code()PWRTLogout();2.用户登录:#pragma code (%useadmin.dll)#include PWRT_api.h#pragma code()PWRTLogin('c');:3.关闭项目并退出winccExitWinCC ();wincc资源管理器:退出运行到4.DeactivateRTProject ();按钮变三种颜色#include apdefap.hlong _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName){#pragma option(mbcs)if(GetTagWord(TX/ZSH001)==1)文档Word.return 0x0000ff00;elseif(GetTagWord(TX/ZSL001)==1)return 0x000000ff;elsereturn 0x00c0c0c0;}一个调用按钮变色#include apdefap.hlong _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName){#pragma option(mbcs)if(GetTagWord(NewTag)==0)return 0x0000ff00;elsereturn 0x00ffffff;}文档Word.5.结束监控并关闭计算机(会弹出确认对话框)HWND hWnd = NULL;//Author:Smartsysint iRet;- ); 运行系统hWnd = FindWindow(NULL,WinCC-,结束监控并关闭计算机剩瑥?獥慳敧潂?坨摮尬,MB_YESNO|MB_ICONWARNING|MB_APPLMODAL); 关闭操作站if(iRet==IDYES)DMExitWinCCEx (DM_SDMODE_POWEROFF);通过点击弹出对话框的确定和取消按钮点击事件弹出对话框,6. :实现对变量的置位或取消int r;, ?尠确定开命令:r=MessageBox(NULL, YES为开,NO为关MB_YESNO |MB_SYSTEMMODAL);if (r==IDYES)SetTagBit(TAGNAME,TRUE);elseSetTagBit(TAGNAME,FALSE);(要在内部变量中建立三个二进制变量开显示关显示7.: )DISPLAY_NO和DISPLAY_COMMENT、COLSE_DISPLAY// Funktion: Bit in Doppelwort setzen;if (GetTagBitWait(COLSE_DISPLAY)==1 ){SetTagBit(COLSE_DISPLAY,0);文档Word.SetTagBit(DISPLAY_NO,0); //Return-Type: BOOLSetTagBit(DISPLAY_COMMENT,0);}else{SetTagBit(COLSE_DISPLAY,1);SetTagBit(DISPLAY_NO,1); //Return-Type: BOOLSetTagBit(DISPLAY_COMMENT,0);}开阀确认:8.BOOL a;); //Return-Type :short int a=GetTagBit(T制水启动if (a==0){操作提示?晩?獥慳敧潂?啎?尬真的要启动制水吗?,MB_YESNO|MB_ICONQUESTION|MB_SETFOREGROUND|MB_SY STEMMODAL) == 6),1); { SetTagBit(T制水启动//Return-Type :BOOL}}else操作提示?真的要停止制水吗?楻?敍獳条?硯丨??文档Word.,MB_YESNO|MB_ICONQUESTION|MB_SETFOREGROUND|MB_SYSTE MMODAL) == 6),1); 制水停止{ SetTagBit(T}}运行画面最小化将WinCC9.HWND WinCCHwnd;如果运行语WinCCHwnd=FindWindow(NULL,WinCC-Runtime - ); //言为英文运行if (WinCCHwnd==0)WinCCHwnd=FindWindow(NULL,WinCC- 如果运行语言为中文系统- ); //CloseWindow(WinCCHwnd);hiddVtext为内部的二进制变量)10.显示或不显示(其中if(GetTagBit(hiddVtext)==0) //Return-Type: BOOL{SetTagBit(hiddVtext,TRUE); //Return-Type: BOOL//Return-Type: BOOL}else{SetTagBit(hiddVtext,FALSE);}文档Word.打开编辑画面的脚本10.#pragma option(mbcs)#ifdef RUN_ON_WEBNAVIGATOR#elseHWND hExplorerWindow= NULL;HWND hRuntimeWindow= NULL;hExplorerWindow=FindWindow(WinCCExplorerFrameWndClass,NULL);hRuntimeWindow=FindWindow(PDLRTisAliveAndWaitsForYou,NULL);if(hExplorerWindow){ShowWindow(hExplorerWindow, SW_MINIMIZE); //This entry is only necessary for Windows 2000 ShowWindow(hExplorerWindow, SW_SHOWNORMAL); SetForegroundWindow(hExplorerWindow);}elseprintf(n SetForeground failed);#endif中制作一个保持型按钮11.如何在WINCC :1方法文档Word .if( GetTagBit(M10) )SetTagBit(M10,0);elseSetTagBit(M10,1);方法2:SetTagBit(M1.0,(SHORT)!GetTagBit(M1.0));求反指令,如果为1点击变为0,如果为0点击变为1方法3:或者做两个按钮,按钮一:显示,直接连接m1.0,是--不显示,否--显示。

wincc中常用C脚本

wincc中常用C脚本

查看文章wincc常用C动作2010-06-27 10:311.用户注销:#pragma code ("useadmin.dll")#include "PWRT_api.h"#pragma code()PWRTLogout();2.用户登录:#pragma code ("useadmin.dll")#include "PWRT_api.h"#pragma code()PWRTLogin('c');3.关闭项目并退出wincc:ExitWinCC ();4.退出运行到wincc资源管理器:DeactivateRTProject ();5.结束监控并关闭计算机(会弹出确认对话框)HWND hWnd = NULL;//Author:Smartsysint iRet;hWnd = FindWindow(NULL,"WinCC-运行系统 - ");iRet=MessageBox(hWnd,"结束监控并关闭计算机","关闭操作站",MB_YESNO|MB_ICONWARNING|MB_APPLMODAL);if(iRet==IDYES)DMExitWinCCEx (DM_SDMODE_POWEROFF);6.点击事件弹出对话框,通过点击弹出对话框的确定和取消按钮实现对变量的置位或取消:int r;r=MessageBox(NULL, "YES为开,NO为关", "确定开命令:", MB_YESNO|MB_SYSTEMMODAL);if (r==IDYES)SetTagBit("TAGNAME",TRUE);elseSetTagBit("TAGNAME",FALSE);7.开显示关显示:(要在内部变量中建立三个二进制变量COLSE_DISPLAY、DISPLAY_NO和DISPLAY_COMMENT)// Funktion: Bit in Doppelwort setzen;if (GetTagBitWait("COLSE_DISPLAY")==1 ){SetTagBit("COLSE_DISPLAY",0);SetTagBit("DISPLAY_NO",0); //Return-Type: BOOLSetTagBit("DISPLAY_COMMENT",0);}else{SetTagBit("COLSE_DISPLAY",1);SetTagBit("DISPLAY_NO",1); //Return-Type: BOOLSetTagBit("DISPLAY_COMMENT",0);}8.开阀确认:BOOL a;a=GetTagBit("30T制水启动"); //Return-Type :short intif (a==0){if(MessageBox(NULL,"真的要启动制水吗?","操作提示",MB_YESNO|MB_ICONQUESTION|MB_SETFOREGROUND|MB_SYSTEMMODAL) == 6) { SetTagBit("30T制水启动",1);//Return-Type :BOOL}}else{if(MessageBox(NULL,"真的要停止制水吗?","操作提示",MB_YESNO|MB_ICONQUESTION|MB_SETFOREGROUND|MB_SYSTEMMODAL) == 6) { SetTagBit("30T制水停止",1);}}9.将WinCC运行画面最小化HWND WinCCHwnd;WinCCHwnd=FindWindow(NULL,"WinCC-Runtime - "); //如果运行语言为英文if (WinCCHwnd==0) WinCCHwnd=FindWindow(NULL,"WinCC-运行系统 - "); //如果运行语言为中文CloseWindow(WinCCHwnd);10.显示或不显示(其中hiddVtext为内部的二进制变量)if(GetTagBit("hiddVtext")==0) //Return-Type: BOOL{SetTagBit("hiddVtext",TRUE); //Return-Type: BOOL//Return-Type: BOOL}else{SetTagBit("hiddVtext",FALSE);}10.打开编辑画面的脚本#pragma option(mbcs)#ifdef RUN_ON_WEBNAVIGATOR#elseHWND hExplorerWindow= NULL;HWND hRuntimeWindow= NULL;hExplorerWindow= FindWindow("WinCCExplorerFrameWndClass",NULL);hRuntimeWindow= FindWindow("PDLRTisAliveAndWaitsForYou",NULL);if(hExplorerWindow){ShowWindow(hExplorerWindow, SW_MINIMIZE); // This entry is only necessary for Windows 2000ShowWindow(hExplorerWindow, SW_SHOWNORMAL);SetForegroundWindow(hExplorerWindow);}elseprintf("\r\n SetForeground failed");#endif11.如何在WINCC中制作一个保持型按钮方法1:if( GetTagBit("M10") )SetTagBit("M10",0);elseSetTagBit("M10",1);方法2:SetTagBit("M1.0",(SHORT)!GetTagBit("M1.0"));求反指令,如果为1点击变为0,如果为0点击变为1方法3:或者做两个按钮,按钮一:显示,直接连接m1.0,是--不显示,否--显示。

WINCC中使用C脚本获得操作记录的方法(原创)

WINCC中使用C脚本获得操作记录的方法(原创)

WINCC中使用C脚本获得操作记录的方法(原创)目录1应用范围 (4)1.1详述 (4)1.2适用的系统 (5)2硬、软件配置 (5)3解决方法 (5)附件附件文档号说明1 应用范围1.1 详述在生产中,有很多时候需要记录操作员的操作,以便进行事故分析。

WINCC本身提供了一些对象可以产生操作记录,但是在复杂的情况下是无法兼顾既获得操作记录又满足特殊操作的要求。

这时,可以使用C脚本来获得操作记录。

目前,在WINCC中以下对象可以很方便地获得操作记录:●任何对象,将Event\Direct Connection\Operator Input Message选中。

图1 通过DirectConnection获得操作记录的组态●Check Box对象和Option Group对象,将property\Operator Input Message属性选择为yes。

图2 Check Box对象和Option Group对象获得操作记录的组态●IO Field对象和Slider对象:将property\Operator Input Message属性选择为yes;或将property\Operator Activities Report属性选择为yes。

Operator Input Message和Operator Activities Report的区别是后者可以输入操作理由,确认之后操作记录的Comment中可以查看到操作理由。

图3 IO Field对象和Slider对象获得操作记录的组态以上方法可以快捷地实现获取操作记录的功能,但是在某些情况下,功能要求更复杂,通过以上方法并不能满足要求。

比如:操作员操作一个启动按钮,要求系统能够记录操作员操作信息。

在单步操作的情况下,通过Direct Connection能够很方便地实现这一功能。

但是在两步操作的情况下,需要操作员先确认,在得到确认之后操作才能生效,由于Direct Connection并没有提供操作确认功能,显然通过Direct Connection并不能满足要求。

WINCC中使用C脚本获得操作记录的方法(原创)

WINCC中使用C脚本获得操作记录的方法(原创)

技术总结C脚本获得操作记录的方法版本日期作者校对批准说明0目录1应用范围 (3)1.1详述 (3)1.2适用的系统 (4)2硬、软件配置 (4)3解决方法 (4)附件附件文档号说明1 应用范围1.1 详述在生产中,有很多时候需要记录操作员的操作,以便进行事故分析。

WINCC本身提供了一些对象可以产生操作记录,但是在复杂的情况下是无法兼顾既获得操作记录又满足特殊操作的要求。

这时,可以使用C脚本来获得操作记录。

目前,在WINCC中以下对象可以很方便地获得操作记录:●任何对象,将Event\Direct Connection\Operator Input Message选中。

图1 通过DirectConnection获得操作记录的组态●Check Box对象和Option Group对象,将property\Operator Input Message属性选择为yes。

图2 Check Box对象和Option Group对象获得操作记录的组态●IO Field对象和Slider对象:将property\Operator Input Message属性选择为yes;或将property\Operator Activities Report属性选择为yes。

Operator Input Message和Operator ActivitiesReport的区别是后者可以输入操作理由,确认之后操作记录的Comment中可以查看到操作理由。

图3 IO Field对象和Slider对象获得操作记录的组态以上方法可以快捷地实现获取操作记录的功能,但是在某些情况下,功能要求更复杂,通过以上方法并不能满足要求。

比如:操作员操作一个启动按钮,要求系统能够记录操作员操作信息。

在单步操作的情况下,通过Direct Connection能够很方便地实现这一功能。

但是在两步操作的情况下,需要操作员先确认,在得到确认之后操作才能生效,由于Direct Connection并没有提供操作确认功能,显然通过Direct Connection并不能满足要求。

WINCC中使用C脚本获得操作记录方法

WINCC中使用C脚本获得操作记录方法

目录1应用范围 (3)1.1详述 (3)1.2适用的系统 (4)2硬、软件配置 (4)3解决方法 (4)附件附件文档号说明1 应用范围1.1 详述在生产中,有很多时候需要记录操作员的操作,以便进行事故分析。

WINCC本身提供了一些对象可以产生操作记录,但是在复杂的情况下是无法兼顾既获得操作记录又满足特殊操作的要求。

这时,可以使用C脚本来获得操作记录。

目前,在WINCC中以下对象可以很方便地获得操作记录:●任何对象,将Event\Direct Connection\Operator Input Message选中。

图1 通过DirectConnection获得操作记录的组态●Check Box对象和Option Group对象,将property\Operator Input Message属性选择为yes。

图2 Check Box对象和Option Group对象获得操作记录的组态●IO Field对象和Slider对象:将property\Operator Input Message属性选择为yes;或将property\Operator Activities Report属性选择为yes。

Operator Input Message和Operator Activities Report的区别是后者可以输入操作理由,确认之后操作记录的Comment中可以查看到操作理由。

图3 IO Field对象和Slider对象获得操作记录的组态以上方法可以快捷地实现获取操作记录的功能,但是在某些情况下,功能要求更复杂,通过以上方法并不能满足要求。

比如:操作员操作一个启动按钮,要求系统能够记录操作员操作信息。

在单步操作的情况下,通过Direct Connection能够很方便地实现这一功能。

但是在两步操作的情况下,需要操作员先确认,在得到确认之后操作才能生效,由于Direct Connection并没有提供操作确认功能,显然通过Direct Connection并不能满足要求。

WINCC中使用C脚本获得操作记录的方法(原创)

WINCC中使用C脚本获得操作记录的方法(原创)

目录1应用围 (3)1.1详述 (3)1.2适用的系统 (4)2硬、软件配置 (4)3解决方法 (4)附件附件文档号说明1 应用围1.1 详述在生产中,有很多时候需要记录操作员的操作,以便进行事故分析。

WINCC本身提供了一些对象可以产生操作记录,但是在复杂的情况下是无法兼顾既获得操作记录又满足特殊操作的要求。

这时,可以使用C脚本来获得操作记录。

目前,在WINCC中以下对象可以很方便地获得操作记录:●任何对象,将Event\Direct Connection\Operator Input Message选中。

图1 通过DirectConnection获得操作记录的组态●Check Box对象和Option Group对象,将property\Operator Input Message属性选择为yes。

图2 Check Box对象和Option Group对象获得操作记录的组态●IO Field对象和Slider对象:将property\Operator Input Message属性选择为yes;或将property\Operator Activities Report属性选择为yes。

Operator Input Message和Operator Activities Report的区别是后者可以输入操作理由,确认之后操作记录的Comment中可以查看到操作理由。

图3 IO Field对象和Slider对象获得操作记录的组态以上方法可以快捷地实现获取操作记录的功能,但是在某些情况下,功能要求更复杂,通过以上方法并不能满足要求。

比如:操作员操作一个启动按钮,要求系统能够记录操作员操作信息。

在单步操作的情况下,通过Direct Connection能够很方便地实现这一功能。

但是在两步操作的情况下,需要操作员先确认,在得到确认之后操作才能生效,由于Direct Connection并没有提供操作确认功能,显然通过Direct Connection并不能满足要求。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档