356 lines
16 KiB
C#
356 lines
16 KiB
C#
|
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>9λһ<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>9λ<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;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|