cnap.h 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. #pragma once
  2. #include <string>
  3. #include <time.h>
  4. #include "s7_micro_client.h"
  5. #include "s7_client.h"
  6. #include "snap7_libmain.h"
  7. //******************************************************************************
  8. // COMMON
  9. //******************************************************************************
  10. // Exact length types regardless of platform/processor
  11. typedef uint8_t byte;
  12. typedef uint16_t word;
  13. typedef uint32_t longword;
  14. typedef byte* pbyte;
  15. typedef word* pword;
  16. typedef uintptr_t S7Object; // multi platform/processor object reference
  17. // DON'T CONFUSE IT WITH AN OLE OBJECT, IT'S SIMPLY
  18. // AN INTEGER VALUE (32 OR 64 BIT) USED AS HANDLE.
  19. //******************************************************************************
  20. // CLIENT CLASS DEFINITION
  21. //******************************************************************************
  22. class TS7Client
  23. {
  24. private:
  25. S7Object Client;
  26. public:
  27. TS7Client();
  28. ~TS7Client();
  29. // Control functions
  30. int Connect();
  31. int ConnectTo(const char* RemAddress, int Rack, int Slot);
  32. int SetConnectionParams(const char* RemAddress, word LocalTSAP, word RemoteTSAP);
  33. int SetConnectionType(word ConnectionType);
  34. int Disconnect();
  35. int GetParam(int ParamNumber, void* pValue);
  36. int SetParam(int ParamNumber, void* pValue);
  37. // Data I/O Main functions
  38. int ReadArea(int Area, int DBNumber, int Start, int Amount, int WordLen, void* pUsrData);
  39. int WriteArea(int Area, int DBNumber, int Start, int Amount, int WordLen, void* pUsrData);
  40. int ReadMultiVars(PS7DataItem Item, int ItemsCount);
  41. int WriteMultiVars(PS7DataItem Item, int ItemsCount);
  42. // Data I/O Lean functions
  43. int DBRead(int DBNumber, int Start, int Size, void* pUsrData);
  44. int DBWrite(int DBNumber, int Start, int Size, void* pUsrData);
  45. int MBRead(int Start, int Size, void* pUsrData);
  46. int MBWrite(int Start, int Size, void* pUsrData);
  47. int EBRead(int Start, int Size, void* pUsrData);
  48. int EBWrite(int Start, int Size, void* pUsrData);
  49. int ABRead(int Start, int Size, void* pUsrData);
  50. int ABWrite(int Start, int Size, void* pUsrData);
  51. int TMRead(int Start, int Amount, void* pUsrData);
  52. int TMWrite(int Start, int Amount, void* pUsrData);
  53. int CTRead(int Start, int Amount, void* pUsrData);
  54. int CTWrite(int Start, int Amount, void* pUsrData);
  55. // Directory functions
  56. int ListBlocks(PS7BlocksList pUsrData);
  57. int GetAgBlockInfo(int BlockType, int BlockNum, PS7BlockInfo pUsrData);
  58. int GetPgBlockInfo(void* pBlock, PS7BlockInfo pUsrData, int Size);
  59. int ListBlocksOfType(int BlockType, TS7BlocksOfType* pUsrData, int* ItemsCount);
  60. // Blocks functions
  61. int Upload(int BlockType, int BlockNum, void* pUsrData, int* Size);
  62. int FullUpload(int BlockType, int BlockNum, void* pUsrData, int* Size);
  63. int Download(int BlockNum, void* pUsrData, int Size);
  64. int Delete(int BlockType, int BlockNum);
  65. int DBGet(int DBNumber, void* pUsrData, int* Size);
  66. int DBFill(int DBNumber, int FillChar);
  67. // Date/Time functions
  68. int GetPlcDateTime(tm* DateTime);
  69. int SetPlcDateTime(tm* DateTime);
  70. int SetPlcSystemDateTime();
  71. // System Info functions
  72. int GetOrderCode(PS7OrderCode pUsrData);
  73. int GetCpuInfo(PS7CpuInfo pUsrData);
  74. int GetCpInfo(PS7CpInfo pUsrData);
  75. int ReadSZL(int ID, int Index, PS7SZL pUsrData, int* Size);
  76. int ReadSZLList(PS7SZLList pUsrData, int* ItemsCount);
  77. // Control functions
  78. int PlcHotStart();
  79. int PlcColdStart();
  80. int PlcStop();
  81. int CopyRamToRom(int Timeout);
  82. int Compress(int Timeout);
  83. // Security functions
  84. int GetProtection(PS7Protection pUsrData);
  85. int SetSessionPassword(char* Password);
  86. int ClearSessionPassword();
  87. // Properties
  88. int ExecTime();
  89. int LastError();
  90. int PDURequested();
  91. int PDULength();
  92. int PlcStatus();
  93. bool Connected();
  94. // Async functions
  95. int SetAsCallback(pfn_CliCompletion pCompletion, void* usrPtr);
  96. bool CheckAsCompletion(int* opResult);
  97. int WaitAsCompletion(longword Timeout);
  98. int AsReadArea(int Area, int DBNumber, int Start, int Amount, int WordLen, void* pUsrData);
  99. int AsWriteArea(int Area, int DBNumber, int Start, int Amount, int WordLen, void* pUsrData);
  100. int AsListBlocksOfType(int BlockType, PS7BlocksOfType pUsrData, int* ItemsCount);
  101. int AsReadSZL(int ID, int Index, PS7SZL pUsrData, int* Size);
  102. int AsReadSZLList(PS7SZLList pUsrData, int* ItemsCount);
  103. int AsUpload(int BlockType, int BlockNum, void* pUsrData, int* Size);
  104. int AsFullUpload(int BlockType, int BlockNum, void* pUsrData, int* Size);
  105. int AsDownload(int BlockNum, void* pUsrData, int Size);
  106. int AsCopyRamToRom(int Timeout);
  107. int AsCompress(int Timeout);
  108. int AsDBRead(int DBNumber, int Start, int Size, void* pUsrData);
  109. int AsDBWrite(int DBNumber, int Start, int Size, void* pUsrData);
  110. int AsMBRead(int Start, int Size, void* pUsrData);
  111. int AsMBWrite(int Start, int Size, void* pUsrData);
  112. int AsEBRead(int Start, int Size, void* pUsrData);
  113. int AsEBWrite(int Start, int Size, void* pUsrData);
  114. int AsABRead(int Start, int Size, void* pUsrData);
  115. int AsABWrite(int Start, int Size, void* pUsrData);
  116. int AsTMRead(int Start, int Amount, void* pUsrData);
  117. int AsTMWrite(int Start, int Amount, void* pUsrData);
  118. int AsCTRead(int Start, int Amount, void* pUsrData);
  119. int AsCTWrite(int Start, int Amount, void* pUsrData);
  120. int AsDBGet(int DBNumber, void* pUsrData, int* Size);
  121. int AsDBFill(int DBNumber, int FillChar);
  122. };
  123. typedef TS7Client* PS7Client;