使用PISDK连接PI有三种方式可以连接,我使用的是需要提供用户名和密码的方式;
如果使用信任登陆方式,则obj_PiSvr.Open(string.Format("UID={0};PWD={1};",_piInfo.sUserName.Trim(),_piInfo.sUserPwd.Trim()));
修改为obj_PiSvr.Open(String.Empty)即可。
[code]
/// <summary>
/// 静态方法,用于测试是否可以连接上
/// </summary>
/// <param name="_piInfo"></param>
/// <param name="errorMsg"></param>
/// <returns></returns>
public static bool isConnect(PI_SERVER _piInfo,ref string errorMsg)
{
bool bl = false;
errorMsg = "";
PISDK.PISDK _obj_PiSdk = null;
PISDK.Server _boj_PiSvr = null;
try
{
_obj_PiSdk = new PISDK.PISDKClass();
_obj_PiSvr = _obj_PiSdk.Servers[_piInfo.sIPaddress];
_obj_PiSvr.Port = _piInfo.nPort;
_obj_PiSvr.Open(string.Format("UID={0};PWD={1};",_piInfo.sUserName.Trim(),_piInfo.sUserPwd.Trim()));
bl = _obj_PiSvr.Connected;
}
catch(Exception e)
{
errorMsg = e.ToString();
bl = false;
}
finally
{
if ( _obj_PiSvr != null && bl)
{
_obj_PiSvr.Close();
}
_obj_PiSvr = null;
_obj_PiSdk = null;
}
return bl;
}
其中结构体为
/// <summary>
/// PI数据库结构体
/// </summary>
public struct PI_SERVER
{
public string sIPaddress;
public int nPort;
public string sUserName;
public string sUserPwd;
}
[/code]