AHTC/RGD/RGD.OPCClient/CGetDeviceState.cs

356 lines
16 KiB
C#
Raw Normal View History

2025-05-19 09:22:33 +08:00
using RGD.Common;
using RGD.DataService;
using System;
using System.Collections.Generic;
namespace RGD.OPCClient
{
public class CGetDeviceState : IGetDeviceState
{
private string _commLayerError;
public string CommLayerError
{
get { return _commLayerError; }
set { _commLayerError = value; }
}
public CGetDeviceState()
{
}
/// <summary>
///1<><31><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4><CCAC>Ϣ
///<2F><><EFBFBD><EFBFBD>أ<EFBFBD> 0-<2D>޻<EFBFBD>1-<2D>л<EFBFBD>
///ȷ<>ϰ<EFBFBD>ť<EFBFBD><C5A5>
///<2F><>1<EFBFBD>ֽڣ<D6BD>
///һ<><D2BB><EFBFBD><EFBFBD><E4BBAF>ֵ<EFBFBD><D6B5>ÿȷ<C3BF><C8B7>һ<EFBFBD>Σ<EFBFBD><CEA3><EFBFBD>ֵ<EFBFBD>һ<E4BBAF>Σ<EFBFBD><CEA3>Ա<EFBFBD>־һ<D6BE><D2BB>
///<2F>µ<EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><30>1<EFBFBD><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E4BBAF>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD><EFBFBD>ǵ<EFBFBD>
///<2F><><EFBFBD><EFBFBD><E4BBAF>
///<2F><>2<EFBFBD>ֽڣ<D6BD>
///1-<2D>޻<EFBFBD>ȷ<EFBFBD><C8B7>
///2-<2D>л<EFBFBD>ȷ<EFBFBD><C8B7>
///<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8>
///<2F><>1<EFBFBD><31> <09>ڣ<EFBFBD><DAA3>豸״̬
///<2F>Ѷ<EFBFBD><D1B6><EFBFBD><EFBFBD><EFBFBD>0-<2D><><EFBFBD><EFBFBD>
///1-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
///2-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
///3-Ҫ<><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ط<EFBFBD><D8B7><EFBFBD><EFBFBD><EFBFBD>
///4-֪ͨ<CDA8><D6AA><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>
///<2F><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
/// <20><><EFBFBD>󳵣<EFBFBD>
/// 0-<2D><><EFBFBD><EFBFBD>
/// 1-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/// 2-<2D><><EFBFBD><EFBFBD>
/// 3-Ҫ<><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ط<EFBFBD><D8B7><EFBFBD><EFBFBD><EFBFBD>
/// 4-֪ͨ<CDA8><D6AA><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>
/// <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
/// <20><><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD>
/// 0-<2D><><EFBFBD><EFBFBD>
/// 1-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/// 2-<2D><><EFBFBD>ɣ<EFBFBD>ֻ<EFBFBD><D6BB>PC<50>·<EFBFBD><C2B7><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E3B1A8><EFBFBD>ɣ<EFBFBD>
/// <20><><EFBFBD>ϻ<EFBFBD><CFBB><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
/// <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
/// <20><>2<EFBFBD><32>3<EFBFBD>ֽڣ<D6BD> <20><><EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD><C5A3><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD>´<EFBFBD><C2B4><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/// <20><>4<EFBFBD><34>5<EFBFBD><35>6<EFBFBD><36>7<EFBFBD>ֽ<EFBFBD>
/// <20>Ѷ<EFBFBD><D1B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>󳵣<EFBFBD>
/// <20>յ<EFBFBD>X<EFBFBD><58><EFBFBD><EFBFBD>ع<EFBFBD><D8B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/// <20><><EFBFBD><EFBFBD>8<EFBFBD>ֽ<EFBFBD><D6BD>Ժ󲿷<D4BA>ֻ<EFBFBD>ԶѶ<D4B6><D1B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/// <20><>8<EFBFBD><38>9<EFBFBD><39>10<31><30>11<31>ֽ<EFBFBD>
/// <20>յ<EFBFBD>Y<EFBFBD><59><EFBFBD><EFBFBD>ظ߶ȷ<DFB6><C8B7><EFBFBD><EFBFBD><EFBFBD>
///
/// 2.<2E><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/// <20><>1-10<31>ֽڣ<D6BD><DAA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD>10λ<30><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
/// <20><><EFBFBD><EFBFBD>һ<EFBFBD>Ź<EFBFBD><C5B9><EFBFBD><EFBFBD>
/// <20><>1-9<>ֽڣ<D6BD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵĺ<CFB5>һ<CEBB>Ź<EFBFBD><C5B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
/// һ<>Ź<EFBFBD><C5B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>32λ<32><CEBB><EFBFBD><EFBFBD>ͬƷ<CDAC><C6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD>Ź<EFBFBD><C5B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ23λ<33><CEBB>ͬ<EFBFBD><CDAC>
/// <20><><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD>ź<EFBFBD><39><CEBB><EFBFBD>롣ÿ<EBA1A3><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD>̿<EFBFBD><CCBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD>Ź<EFBFBD><C5B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/// <20><>18<31><38><EFBFBD>ֽڣ<D6BD><DAA3><EFBFBD>λ<EFBFBD><CEBB>һ<EFBFBD>ν<EFBFBD><CEBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD>Ź<EFBFBD><C5B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣͬʱ<CDAC><CAB1>ȡ<EFBFBD><C8A1>
/// <20><>λ<EFBFBD><CEBB><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD>ȡ18<31><38><EFBFBD>ֽں󣬰<DABA><F3A3ACB0><EFBFBD>18<31><38><EFBFBD>ֽ<EFBFBD>ȫ<EFBFBD><C8AB>д<EFBFBD><D0B4><EFBFBD>
/// <20><>λ<EFBFBD><CEBB>ֻ<EFBFBD>м<EFBFBD><D0BC>⵽18<31><38><EFBFBD>ֽ<EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>ſ<EFBFBD><C5BF><EFBFBD>д<EFBFBD><D0B4><EFBFBD>µ<EFBFBD>һ<EFBFBD>Ź<EFBFBD><C5B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2>
///
/// 3.<2E><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֳ<EFBFBD><D6B3><EFBFBD><EFBFBD>ƴ<EFBFBD><C6B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>
/// <20><>1<EFBFBD>ֽ<EFBFBD> <20><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>
/// 1- <09>ط<EFBFBD><D8B7><EFBFBD>ǰ<EFBFBD>豸ָ<E8B1B8><D6B8>
/// 2- <09><><EFBFBD><EFBFBD><EFBFBD>޸ĵ<DEB8>ǰ<EFBFBD><EFBFBD><E8B1B8>ִ<EFBFBD><D6B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF>λ<EFBFBD><CEBB>
/// <20><>2<EFBFBD><32>3<EFBFBD>ֽ<EFBFBD> <09><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/// <20><>4<EFBFBD><34>5<EFBFBD>ֽ<EFBFBD> <09><><EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD><C5A3><EFBFBD>Ҫ<EFBFBD>޸<EFBFBD>Ŀ<EFBFBD><C4BF>λ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD>
/// <20><>6<EFBFBD><36>15<31>ֽ<EFBFBD> <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EBA3A8>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD>̵<EFBFBD><CCB5><EFBFBD><EFBFBD>
/// <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>򿪹<EFBFBD><F2BFAAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>䶪ʧ<E4B6AA><CAA7>
/// <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD>̵<EFBFBD><CCB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/// <20><>λ<EFBFBD><CEBB><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7>͵<EFBFBD>ǰ<EFBFBD><EFBFBD><E8B1B8>ָ<EFBFBD>
/// <20><><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF>λ<EFBFBD>á<EFBFBD>
/// <20><>λ<EFBFBD><CEBB><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5>µ<EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸Ĵ<DEB8><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ŵ<EFBFBD>Ŀ<EFBFBD><C4BF>λ<EFBFBD>á<EFBFBD>
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>Ϊ1ʱ<31><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ſ<EFBFBD><C5BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>Ϊ2ʱ<32><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>
/// </summary>
/// <param name="DeviceIndex"><3E><EFBFBD><E8B1B8><EFBFBD><EFBFBD></param>
/// <returns><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD>ɹ<EFBFBD><C9B9>󣬷<EFBFBD><F3A3ACB7><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD>Ϣ<EFBFBD>󷵻<EFBFBD>22<32><32><EFBFBD>ֵ<EFBFBD>״̬</returns>
public int[] GetDeviceState(int DeviceIndex)//<2F><><EFBFBD><EFBFBD>
{
string[] itemnames;
int[] _Rword = new int[20];
List<string> itemvalue = new List<string>();
Model.MDevice devinfo = BaseDeviceService.GetDeviceInfo(DeviceIndex);
try
{
if (devinfo.DeviceIndex == 0)
{
_commLayerError = "OPCClient.CGetDeviceState.GetDeviceState<74><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD>û<EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>";
return null;
}
else
{
CCommonOPCClient.Hostname = AppSettings.GetValue("HostName");//20090922 devinfo.RemoteIP;
CCommonOPCClient.ProgID = AppSettings.GetValue("OPCProgID");
switch (devinfo.DeviceKind.ToString())
{
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܵIJɼ<EFBFBD>
case "28":
int[] _RRword = new int[(int)devinfo.Dbw2Getlength];
byte[] br = CCommonOPCClient.SyncReadAllItems();
if (br == null)
{
_commLayerError = "OPCClient.CGetDeviceState.GetDeviceState<74><65>" + CCommonOPCClient.OpcError;
return null;
}
Array.Copy(br, _RRword, (int)devinfo.Dbw2Getlength);
return _RRword;
#endregion <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܵIJɼ<EFBFBD>
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
case "1"://<2F>Ѷ<EFBFBD><D1B6><EFBFBD>
itemnames = new string[5];
itemnames[0] = "DB2,byte" + Convert.ToString((devinfo.Dbw2Address + 0));
itemnames[1] = "DB2,byte" + Convert.ToString((devinfo.Dbw2Address + 1));
itemnames[2] = "DB2,int" + Convert.ToString((devinfo.Dbw2Address + 2));
itemnames[3] = "DB2,DWORD" + Convert.ToString((devinfo.Dbw2Address + 4));
itemnames[4] = "DB2,DWORD" + Convert.ToString((devinfo.Dbw2Address + 8));
itemvalue = CCommonOPCClient.SyncReadAllItems(itemnames);
if (itemvalue.Count == 0)
{
_commLayerError = "OPCClient.CGetDeviceState.GetDeviceState<74><65>" + CCommonOPCClient.OpcError;
return null;
}
_Rword[0] = Convert.ToInt32(itemvalue[0]);//<2F><>д<EFBFBD><D0B4>־
_Rword[1] = Convert.ToInt32(itemvalue[1]);//״̬
_Rword[2] = Convert.ToInt32(itemvalue[2]);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
_Rword[3] = Convert.ToInt32(itemvalue[3]);//X<><58><EFBFBD><EFBFBD>
_Rword[4] = Convert.ToInt32(itemvalue[4]);//Y<><59><EFBFBD><EFBFBD>
_Rword[5] = DeviceIndex;//<2F><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
break;
case "2"://<2F><><EFBFBD>ͻ<EFBFBD>
itemnames = new string[3];
itemnames[0] = "DB2,byte" + Convert.ToString((devinfo.Dbw2Address + 0));
itemnames[1] = "DB2,byte" + Convert.ToString((devinfo.Dbw2Address + 1));
itemnames[2] = "DB2,int" + Convert.ToString((devinfo.Dbw2Address + 2));
itemvalue = CCommonOPCClient.SyncReadAllItems(itemnames);
if ((itemvalue == null) || (itemvalue.Count == 0))
{
_commLayerError = "OPCClient.CGetDeviceState.GetDeviceState<74><65>" + CCommonOPCClient.OpcError;
return null;
}
_Rword[0] = Convert.ToInt32(itemvalue[0]);//<2F><>д<EFBFBD><D0B4>־
_Rword[1] = Convert.ToInt32(itemvalue[1]);//״̬
_Rword[2] = Convert.ToInt32(itemvalue[2]);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
_Rword[3] = 0;
_Rword[4] = 0;
_Rword[5] = DeviceIndex;//<2F><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
break;
#region RGV<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
case "4"://RGV
itemnames = new string[4];
itemnames[0] = "DB2,byte" + Convert.ToString((devinfo.Dbw2Address + 0));
itemnames[1] = "DB2,byte" + Convert.ToString((devinfo.Dbw2Address + 1));
itemnames[2] = "DB2,int" + Convert.ToString((devinfo.Dbw2Address + 2));
itemnames[3] = "DB2,DWORD" + Convert.ToString((devinfo.Dbw2Address + 4));
itemvalue = CCommonOPCClient.SyncReadAllItems(itemnames);
if ((itemvalue == null) || (itemvalue.Count == 0))
{
_commLayerError = "OPCClient.CGetDeviceState.GetDeviceState<74><65>" + CCommonOPCClient.OpcError;
return null;
}
_Rword[0] = Convert.ToInt32(itemvalue[0]);//<2F><>д<EFBFBD><D0B4>־
_Rword[1] = Convert.ToInt32(itemvalue[1]);//״̬
_Rword[2] = Convert.ToInt32(itemvalue[2]);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
_Rword[3] = Convert.ToInt32(itemvalue[3]);//X<><58><EFBFBD><EFBFBD>
_Rword[4] = 0;
_Rword[5] = DeviceIndex;//<2F><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
break;
case "13"://<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
itemnames = new string[4];
itemnames[0] = "DB2,byte" + Convert.ToString((devinfo.Dbw2Address + 0));
itemnames[1] = "DB2,byte" + Convert.ToString((devinfo.Dbw2Address + 1));
itemnames[2] = "DB2,byte" + Convert.ToString((devinfo.Dbw2Address + 2));
itemnames[3] = "DB2,byte" + Convert.ToString((devinfo.Dbw2Address + 3));
itemvalue = CCommonOPCClient.SyncReadAllItems(itemnames);
if ((itemvalue == null) || (itemvalue.Count == 0))
{
_commLayerError = "OPCClient.CGetDeviceState.GetDeviceState<74><65>" + CCommonOPCClient.OpcError;
return null;
}
if (itemvalue[0] != "1") return null;
_Rword[0] = Convert.ToInt32(itemvalue[1]);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ
_Rword[1] = Convert.ToInt32(itemvalue[2]);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ
_Rword[2] = Convert.ToInt32(itemvalue[3]);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ
_Rword[3] = 0;
_Rword[4] = 0;
_Rword[5] = DeviceIndex;//<2F><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
break;
#endregion RGV<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#endregion <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
default:
break;
}
}
return _Rword;
}
catch (Exception ex)
{
_commLayerError = "OPCClient.CGetDeviceState.GetDeviceState<74><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" + ex.Message;
return null;
}
finally
{
itemnames = null;
_Rword = null;
itemvalue = null;
devinfo = null;
}
}
public string GetStringData(int DeviceIndex, int TaskIndex)
{//20091107
string headstr = "";
string[] itemnames;
string retdata = "";
string[] witemnames;
byte[] itemvalue;
object[] obj;
Model.MDevice devinfo = BaseDeviceService.GetDeviceInfo(DeviceIndex);
try
{
if (devinfo.DeviceIndex == 0)
{
_commLayerError = "OPCClient.CGetDeviceState.GetStringData<74><61><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD>û<EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>";
return null;
}
else
{
CCommonOPCClient.Hostname = AppSettings.GetValue("HostName");//20090922 devinfo.RemoteIP;
CCommonOPCClient.ProgID = AppSettings.GetValue("OPCProgID");
witemnames = new string[1] { "DB2,byte" + Convert.ToString((devinfo.Dbw2Address + 0)) };
switch (devinfo.DeviceKind.ToString())
{
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ(10<EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD>)
case "7":
itemnames = new string[11];
itemnames[0] = "DB2,byte" + Convert.ToString((devinfo.Dbw2Address + 0));
for (int i = 1; i < 11; i++)
{
itemnames[i] = "DB2,byte" + Convert.ToString((devinfo.Dbw2Address + i));
}
obj = CCommonOPCClient.SyncReadItemValues(itemnames);
if ((obj == null))
{
_commLayerError = "OPCClient.CGetDeviceState.GetDeviceState<74><65>" + CCommonOPCClient.OpcError;
return null;
}
if (obj[0].ToString() != "1") return null;
itemvalue = new byte[obj.Length];
Array.Copy(obj, itemvalue, obj.Length);
headstr = itemvalue[0].ToString();
for (int i = 1; i <= 10; i++)
{
retdata += Convert.ToChar(itemvalue[i]);
}
break;
#endregion <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ(10<EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD>)
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD>Ź<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>32<EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD>+һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>־ͷ<EFBFBD><EFBFBD>
case "21":
itemnames = new string[33];
itemnames[0] = "DB2,byte" + Convert.ToString((devinfo.Dbw2Address + 0));
for (int i = 1; i < 33; i++)
{
itemnames[i] = "DB2,byte" + Convert.ToString((devinfo.Dbw2Address + i));
}
obj = CCommonOPCClient.SyncReadItemValues(itemnames);
if ((obj == null))
{
_commLayerError = "OPCClient.CGetDeviceState.GetDeviceState<74><65>" + CCommonOPCClient.OpcError;
return null;
}
if (obj[0].ToString() != "1") return null;
itemvalue = new byte[obj.Length];
Array.Copy(obj, itemvalue, obj.Length);
headstr = itemvalue[0].ToString();
for (int i = 1; i <= 32; i++)
{
retdata += Convert.ToChar(itemvalue[i]);
}
break;
#endregion <EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD>Ź<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>32<EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD>+һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>־ͷ<EFBFBD><EFBFBD>
default:
break;
}
}
if (headstr == "1")
{
string[] wv = new string[1] { "2" };
if (CCommonOPCClient.SyncWriteAllItemValue(witemnames, wv) == false)
{
_commLayerError = "OPCClient.CGetDeviceState.GetDeviceState<74><65>" + CCommonOPCClient.OpcError;
return null;
}
else
{
return retdata;
}
}
else
{
return null;
}
}
catch (Exception ex)
{
_commLayerError = "OPCClient.CGetDeviceState.GetStringData<74><61><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" + ex.Message;
return null;
}
finally
{
headstr = null;
itemnames = null;
retdata = null;
witemnames = null;
itemvalue = null;
obj = null;
devinfo = null;
}
}
}
}