Advertisement
Guest User

Untitled

a guest
Aug 22nd, 2019
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.51 KB | None | 0 0
  1. const { OPCUAClient , NodeCrawler} = require("node-opcua");
  2. const async = require("async");
  3. const util = require("util");
  4.  
  5. const client = OPCUAClient.create({
  6. endpoint_must_exist: false
  7. });
  8.  
  9. // UA Automation Ansi Demo Server
  10. const endpointUrl = "opc.tcp://localhost:48020";
  11. const nodeToExplore = "ns=4;s=Demo.Massfolder_Dynamic";
  12. const tree = {
  13.  
  14. }
  15.  
  16.  
  17. function main(callback) {
  18.  
  19. async.series([
  20. function (cb3) {
  21.  
  22. client.connect(endpointUrl, function (err) {
  23.  
  24. if (err) {
  25. console.log(" cannot connect to endpoint :", endpointUrl);
  26. } else {
  27. console.log("connected !");
  28. }
  29. cb3(err);
  30.  
  31. });
  32.  
  33. },
  34. function (cb3) {
  35. client.createSession(function (err, session) {
  36. if (err) {
  37. console.log("Failed to Create the Browse Session");
  38. }
  39. else {
  40. console.log("Browse Session Creates Session Successfully!");
  41. the_session = session;
  42. }
  43. cb3(err);
  44. });
  45.  
  46. },
  47. function (cb3) {
  48. var crawler = new NodeCrawler(the_session);
  49. var nodeId = nodeToExplore
  50. console.log("Browsing Data in the server from "+ nodeToExplore.toString());
  51. crawler.read(nodeId, function (err, obj) {
  52. if (err) {
  53. console.log("Failed to Read Data");
  54. }
  55. else {
  56. console.log("Data read from PLC is Successful");
  57. }
  58. cb3(err);
  59. });
  60.  
  61. crawler.on("browsed", function (element) {
  62.  
  63. const parentNode = (element.parent && element.parent.$node )? element.parent.$node : tree;
  64. const key = element.browseName.toString() + " " + element.nodeId.toString();
  65. // xxelement.nodeId.toString();
  66. if (!parentNode[key]) {
  67. parentNode[key] = { };
  68. }
  69. const n = parentNode[key];
  70. element.$node = n;
  71. console.log("element name:" + element.browseName.toString());
  72. });
  73. }
  74. ],
  75. function (err) {
  76. console.log(util.inspect(tree,{ depth: 100}));
  77.  
  78. if (err) {
  79. console.log("Failure in opcua browsing!", err);
  80. callback(err)
  81. } else {
  82. console.log("No Error :)");
  83. callback();
  84. }
  85. console.log("disconnected");
  86. client.disconnect(function () { });
  87. });
  88. }
  89. main((err)=>{
  90. console.log("done",err);
  91. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement