This site uses cookies for functional purposes. To continue please read and agree to our Data Privacy.

By closing this message, you consent to our use of cookies on this device.

PLCnext on Instagram  PLCnext on YouTube Github PLCnext CommunityStore PLCnext Community

 

 How to create a Blog Entry

Find user stories of interesting ideas and solutions in this blog. If you have any problems with editing or publishing please contact us at This email address is being protected from spambots. You need JavaScript enabled to view it..

Note: The maker blog show applications and user stories of community members and are not tested or reviewed by Phoenix Contact.


 

=== UPDATE ====

The recommended way to install node.js and npm is now through the PLCnext Store.

After installing node.js from the Store, log in to the PLC as "admin" and proceed with node-red installation using npm.

Useful links:

Sample flow on the Node-RED website

Commands to install Node-RED:

ipkg install node (install node.js from the PLCnext Store)
npm install -g node-red

Note: The errors seen during Node-RED installation relate to the optional bcrypt package.
To avoid these errors, install gcc, make, and python 2, before installing Node-RED:

ipkg install gcc
ipkg install make
ipkg install python27
npm install -g node-red --python=python2 --unsafe-perm

Mosquitto is an open source project to implement an MQTT client to your system. The MQTT (Message Queue Telemetry Transport) protocol is made for machine-to-machine (M2M) connectivity, basing on an extremely lightweight messaging using a publish/subscribe model. This makes it suitable for Internet of Things messaging such as with low power sensors or embedded computers.

The Mosquitto project also provides a C library for implementing MQTT clients, and the very popular mosquitto_pub and mosquitto_sub command line MQTT clients.

Let's see how to crosscompile it for PLCnext Controls.

libcurl - the multiprotocol file transfer library

libcurl is a free and easy-to-use client-side URL transfer library, supporting DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet and TFTP.

libcurl supports SSL certificates, HTTP POST, HTTP PUT, FTP uploading, HTTP form based upload, proxies, cookies, user + password authentication (Basic, Digest, NTLM, Negotiate, Kerberos), file transfer resume, http proxy tunneling and more!

The Libwebsockets API ("LWS") covers a lot of interesting features for people making embedded servers or clients:

  • HTTP(S) serving and client operation
  • HTTP/2 support for serving
  • WS(S) serving and client operation
  • HTTP(S) apis for file transfer and upload
  • HTTP 1 + 2 POST form handling (including multipart / file upload)
  • cookie-based sessions
  • account management (including registration, email verification, lost pw etc)
  • strong SSL / TLS PFS support (A+ on SSLlabs test)
  • ssh server integration
  • serving gzipped files directly from inside zip files, without conversion
  • support for linux, bsd, windows etc... and very small non-linux targets like ESP32

    Here's how to crosscompile it - first the easy way, and then for advanced users:

OpenCV (Open Source Computer Vision) is a cross-platform and free-for-use library for use in the emerging field of computer vision, a science on how computers extract information from digital images or videos. It's about acquiring and processing visual data, and making decisions and performing actions based on the analysis. OpenCV support deep learning frameworks and includes a statistical machine learning library, what makes it applicable for motion tracking, gesture and facial recognition, and object identification.

By using embedded systems (and a PLC is in fact nothing else) it is a vital requirement to analyze the timing behavior of the application (programs and tasks). This is not only useful to enhance the general performance of an application, but absolutely necessary to find seldom and sporadic issues.
We decided to use for that purpose the powerful Linux open source package LTTng (Linux Trace Toolkit Next Generation - http://lttng.org) and to give the application engineers the full insight into the system.

This manual should introduce the general usage of LTTng for the AXC F 2152 with the stand alone tool Trace Compass (http://tracecompass.org)

Every PLCnext Control is based on a Linux operating system and is delivered with a preconfigured admin user with a unique password.

With the admin user it is possible to get access to the most important functions (e.g. OpenVPN® and firewall configuration, set time and date, read/write project specific folders), but sometimes it might be necessary to get root permissions.

This can be done temporary by using the "sudo" command, but it is also possible to create a persistent root user.

Watch also our Tutorial Video on Youtube How to create a root user

This little guide describes how a VPN tunnel can be created in an easy manner between a server and a client (AXC F 2152) via OpenVPN® by using certificates.

Keep in mind that there are several ways of how to configure a VPN tunnel, this examples shows only one possible way of many.

Use this guide at your own risk. I tried to make it reasonably safe, but you should always assure yourself if it’s safe, if their are vulnerabilities known, and if protocols might be compromised.

Page 4 of 5