| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Runtime.InteropServices;
- using System.Text;
- using System.Threading.Tasks;
- namespace CCDCount.DLL.Inovance
- {
- public static class IncvanceEip
- {
- public enum ERROR_NO : int
- {
- ERR_EIP_STOPED = -2,//协议栈未开启
- OTHER_ERROR = -1,
- SUCCESS = 0,
- ERRI_INVALID_CONNECTION_INSTANCE_SPECIFIED = 1,//连接的实例ID与已有的ID重复或超过最大值
- ERRI_CONN_CONFIG_FAILED_INVALID_NETWORK_PATH,//连接的网络路径格式错误,无法检测出来目标IP离线等错误
- ERRI_CONNECTION_COUNT_LIMIT_REACHED,//达到最大连接数量
- ERRI_OUT_OF_MEMORY,//内存溢出,缓冲区已满
- ERRR_CONN_CONFIG_FAILED_INVALID_NETWORK_PATH, //连接的网络地址无效
- ERRR_CONN_CONFIG_FAILED_NO_RESPONSE, //连接无响应
- ERRR_CONN_CONFIG_FAILED_ERROR_RESPONSE,//连接响应错误
- ERRR_INVALID_DESTINATION, //目标标签不存在
- ERRR_TAGNAME_TOO_LONG, //标签名超过255字节
- ERRR_REQUEST_DATA_TOO_LARGE, //请求数据超限
- ERRR_CONN_CONNECTION_TIMED_OUT, //活动连接响应超时,请检查目标IP是否离线
- ERRR_TAGNAME_CONVERT_FAILED, //标签名解析错误
- ERRR_WRITE_DATASIZE_UNCONSISTENT, //数据长度与标签实际长度不一致
- ERRR_SCAN_ERROR, //扫描标签信息失败
- };
- public enum TAG_TYPE : int
- {
- TAG_TYPE_UNDEFINE = -1,
- TAG_TYPE_BOOL = 0xC1, //新增
- TAG_TYPE_SINT = 0xC2,
- TAG_TYPE_INT = 0xC3,
- TAG_TYPE_DINT = 0xC4,
- TAG_TYPE_LINT = 0xC5,
- TAG_TYPE_USINT = 0xC6,
- TAG_TYPE_UINT = 0xC7,
- TAG_TYPE_UDINT = 0xC8,
- TAG_TYPE_ULINT = 0xC9,
- TAG_TYPE_REAL = 0xCA,
- TAG_TYPE_LREAL = 0xCB,
- TAG_TYPE_STRING = 0xD0, //新增
- TAG_TYPE_BYTE = 0xD1,
- TAG_TYPE_WORD = 0xD2,
- TAG_TYPE_DWORD = 0xD3,
- TAG_TYPE_LWORD = 0xD4,
- TAG_TYPE_STRUCT = 0xA2, //新增
- TAG_TYPE_ARRAY = 0xA3
- };
- public enum EtIPConnectionState : int
- {
- ConnectionNonExistent = 0x0, //该实例未有连接
- ConnectionConfiguring = 0x1, //连接正在打开过程中
- ConnectionEstablished = 0x3, //连接已成功建立并在活动中
- ConnectionTimedOut = 0x4, //连接超时
- ConnectionClosing = 0x6 //连接正在关闭中
- };
- public const uint INVALID_MEMBER = 0xffffffff; //Member is not valid flag should be used when no member should be specified in the UCMM
- public struct tagTagReadData
- {
- public string pName;
- public int nElementCount;
- public int nArrayPos;
- };
- public struct tagTagReadDataBase
- {
- public string pName;
- public int nElementCount;
- };
- public struct tagTagRetValue
- {
- public IntPtr pData;
- public TAG_TYPE pType;
- public int nDataLength;
- };
- [StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
- public struct tagTagWriteData
- {
- public string pName;
- public IntPtr pData;
- public TAG_TYPE pType;
- public int nArrayPos;
- public int nDataLength;
- public int nElementCount;
- };
- public struct tagTagWriteDataBase
- {
- public string pName;
- public IntPtr pData;
- public TAG_TYPE pType;
- public int nDataLength;
- public int nElementCount;
- };
- [DllImport("EipTagSimple.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
- public static extern void EipStart();
- [DllImport("EipTagSimple.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
- public static extern void EipStop();
- [DllImport("EipTagSimple.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
- public static extern int EipOpenConnection(string ipAddress, IntPtr instanceID);
- [DllImport("EipTagSimple.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
- public static extern int EipCloseConnection(int nID);
- [DllImport("EipTagSimple.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
- public static extern int EipReadTag(int instanceID, string tagName, IntPtr type, byte[] dest, int dataLength, ushort elementCount = 1, uint nPos = INVALID_MEMBER);
- [DllImport("EipTagSimple.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
- public static extern int EipWriteTag(int instanceID, string tagName, int type, byte[] source, int dataLength, ushort elementCount = 1, uint nPos = INVALID_MEMBER/*, uint strLen = 0*/);
- [DllImport("EipTagSimple.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
- public static extern int EipGetConnectionState(int nID);
- [DllImport("EipTagSimple.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
- public static extern bool EipStartExt(string ipAddress, uint nPort = 0);
- [DllImport("EipTagSimple.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
- public static extern int EipReadTagList(int instanceID, int nNumOfTags, tagTagReadData[] pTagList, ref tagTagRetValue pdest);
- [DllImport("EipTagSimple.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
- public static extern ERROR_NO EipWriteTagList(int instanceID, int nNumOfTags, tagTagWriteData[] pTagWritenData);
- [DllImport("EipTagSimple.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
- public static extern bool DeleteTagListStru(ref tagTagRetValue pRetValue, int nNumOfTags);
- [DllImport("EipTagSimple.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
- public static extern int EipReadTagExt(int instanceID, string tagName, IntPtr type, byte[] dest, int dataLength, ushort elementCount = 1);
- [DllImport("EipTagSimple.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
- public static extern int EipWriteTagExt(int instanceID, string tagName, int type, byte[] source, int dataLength, ushort elementCount = 1);
- [DllImport("EipTagSimple.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
- public static extern int EipReadTagListExt(int instanceID, int nNumOfTags, tagTagReadDataBase[] pTagList, ref tagTagRetValue pdest, bool bScan = false);
- [DllImport("EipTagSimple.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
- public static extern ERROR_NO EipWriteTagListExt(int instanceID, int nNumOfTags, tagTagWriteDataBase[] pTagWritenData, bool bScan = false);
- [DllImport("EipTagSimple.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
- public static extern ERROR_NO EipReadTagExt2(int iInstanceID, tagTagReadDataBase[] pTagList, ref tagTagRetValue pDest);
- [DllImport("EipTagSimple.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
- public static extern ERROR_NO EipWriteTagExt2(int iInstanceID, tagTagWriteDataBase[] pTagWritenData);
- [DllImport("EipTagSimple.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
- public static extern void ResetTagInfo();
- [DllImport("EipTagSimple.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
- public static extern ERROR_NO EipReadTagRaw(int iInstanceID, tagTagReadDataBase[] pTagList, ref tagTagRetValue pDest);
- [DllImport("EipTagSimple.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
- public static extern ERROR_NO EipWriteTagRaw(int iInstanceID, tagTagWriteDataBase[] pTagWritenData);
- [DllImport("EipTagSimple.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
- public static extern int EipReadTagListRaw(int instanceID, int nNumOfTags, tagTagReadDataBase[] pTagList, ref tagTagRetValue pdest);
- [DllImport("EipTagSimple.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
- public static extern ERROR_NO EipWriteTagListRaw(int instanceID, int nNumOfTags, tagTagWriteDataBase[] pTagWritenData);
- }
- }
|