Storing PLC Data in a Database and Excel Sheets Using Node-RED
Introduction
In today's data-driven world, the ability to collect, store, and analyze data efficiently is critical, even in industrial settings. Programmable Logic Controllers (PLCs) are the backbone of industrial automation, generating a wealth of data that can provide valuable insights. This tutorial explores a practical solution for capturing and utilizing this data using Node-RED, a versatile and user-friendly platform.
Node-RED simplifies the process of integrating PLC data into databases and spreadsheet applications like Excel and Google Sheets. In this tutorial, we'll walk you through the steps required to seamlessly connect your PLC to Node-RED, transform and store the data in a database, and export it to user-friendly formats for analysis and reporting.
Whether you're an industrial engineer looking to optimize processes or a data enthusiast eager to explore industrial data handling, this tutorial will equip you with the skills to bridge the gap between your PLC and data storage solutions with ease.
Prerequisites
You’ll need to have a few items to follow this tutorial:
- TIA Portal V15 | Note - The process is the same for other versions of TIA Portal.
- Net-To-PLC-Sim | Note: Necessary for simulating a real PLC when a physical PLC is not available.
- Node-RED.
- MySQL | Note - The process is the same for other SQL databases.
MySQL – Download and Setup
Step 1 - Download MySQL
Step 1.1 - Navigate to the following Link - MySQL Download.
Step 1.2 - Select “Version and Microsoft Windows” & Click “Download.”
![Figure 3.1 - Siemens TIA Portal PLC MySQL Google Sheets Data | MySQL Download](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e01049b66aba747cab70_Fwxx7ruo4Eyy85EywJyLeCWG1zdVTnTAEur6x57-0uVmzOUReZOFte8mxUXtVvHyVF-mDUIzR1tDs1m_EtidVf1enim1S04pF2PRruCiUXUpOk0B0hVMCUbFl1ppaSBsz2iSU_88Xx3uGKV2ounj-g.png)
Step 1.3 – Click “No thanks, just start my download.”
![Figure 3.2 - Siemens TIA Portal PLC MySQL Google Sheets Data | MySQL Download](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e010a0814f03b1d73d82_U1aaN3D1EnawpBz1zkMXaq7gf7tN9I2xfUNl19G5nyhlQ7wTc4o2hlILHXjwVW0HEZ75KNJUqGB4H-EiJPd0svCH7wEowzKuPVK9uPH22gshbR2rHerRaClfeP4Ve7eGm10Q0eyiW729nIy85DeAZw.png)
Now that we’ve downloaded MySQL, let’s install it.
Step 2 - Install MySQL
Step 2.1 -Double-click on “MySQL installer.”
Step 2.2 - Select “Full”
Step 2.3 - Click “Next.”
![Figure 3.3 - Siemens TIA Portal PLC MySQL Google Sheets Data | MySQL Installer](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e010a26c484eeb218a4b_x925tkAcRvp1e73dUOw7EdQBx87zsKQzcgbNsRrDNXsnjz1Qx161SL14DFXK_oH3VmI3MAWduc82RwV-FLs23SCuvogNKvG74iXvQ-aVkCxFwHCXRZuY5Y2QdrCkJnn6KBWDFOUHtFkNEoCcv94TeA.png)
Step 2.4 - Click “Execute.”
![Figure 3.4 - Siemens TIA Portal PLC MySQL Google Sheets Data | MySQL Installer](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e0108f965b93a2003bba_1W6pVYLTevr2_Di4LSgV_RdaaNz2lbFJMZGC-WvFfKdOVg2_8t7o1uLb8ZGm2f402e6NPfaET-E6tpYCBaviZ8SvEC_wZ-0RVVmkAZNILO2iHa0GIWSQuL8TLjd7fuVjqyt27Z69rSul3SmOdOfd0A.png)
Step 2.5 - Click “Next.”
Step 2.6 - Click “Next.”
Step 2.7 - Click “Next.”
Step 2.8 - Set Password.
Step 2.9 - Click “Add User.”
![Figure 3.5 - Siemens TIA Portal PLC MySQL Google Sheets Data | MySQL Installer](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e010a7941a9c149b2421_kgx7lAWgbxwX25sVp9eS_iH8QpcKWY3u5kL-FbBPoLebmo6jIncrK7UXEYx4Ttze-qAPvE7l00fmOK9EazF4tkuaniDOpoGZ80SeRWXJ5clSaXurYQn1WD0Xdve0yEZfRDWFFzsOz2NWx3DzojIyUA.png)
Step 2.10 - Set User and Password
Step 2.11 - Click “OK.”
![Figure 3.6 - Siemens TIA Portal PLC MySQL Google Sheets Data | MySQL Installer](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e010a7941a9c149b2428_f2gp7wrN1SrviLEQY4DN66blc0TLRZYjcPvOU6R1UfipyL5QyHDIFW7-gDcXwb3FylqMVfXH7Y4K-VIA3zp6X9vY6tTwCRAKSky7191mUzWvRhovQE-P4zu5kKYa9vEO2jbP4tNdq7ji2qCIKB1AmA.png)
Step 2.12 - Click “Next.”
![Figure 3.7 - Siemens TIA Portal PLC MySQL Google Sheets Data | MySQL Installer](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e01074270a934298acfd_-hCteQlv0d7NpLomJgCJgl5BtnGamku9IPfOcPvEb75A12chUKGsQxMbAWZXnTFb3YgQaapIYCOrgLczHmC5rMlpC9RIOnf8muIIzOTGnsozOvin_MbWuqO5KBgDp8DnnmN2LOXa7R7gqDsvrfvhVw.png)
Step 2.13 - Click “Next.”
Step 2.14 - Click “Next.”
Step 2.15 - Click “Execute.”
Step 2.16 - Click “Finish.”
Step 2.17 - Click “Next.”
Step 2.18 - Click “Finish.”
Step 2.19 - Click “Next.”
Step 2.20 - input password
Step 2.21 - Click “Check.”
Step 2.22 - Click “Next.”
![Figure 3.8 - Siemens TIA Portal PLC MySQL Google Sheets Data | MySQL Installer](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e01085a313008ab0c142_Qn0nzZ92M0octV9H0_lhSx19o5P9brea6OUWf3_L7VBKFOVMYztgwLUl4JY5RKzFYG3CY4DBitrFrk6N51gz4rk2F6GlYf339E6uhMbjtXS_Fbnwib5p1pdy0QcoKmAuKHne7-mHJLtHgyk69bULBA.png)
Step 2.23 - Click “Execute.”
Step 2.24 - Click “Finish.”
Step 2.25 - Click “Next.”
Step 2.26 - Click “Finish.”
The installation is now completed.
MySQL side – Configurations
Step 1 - How to Connect to MySQL
Step 1.1 - Open “MySQL Workbench.”
Step 1.2 - Click “Local instance MySQL80.”
![Figure 4.1 - Siemens TIA Portal PLC MySQL Google Sheets Data | MySQL Workbench](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e01085a313008ab0c146_4oe6w96pSToAlPFhJMSXxPCszyBIuigFT-a4Z4ZkVt7XmVV1ir8NAOqj0Cle9OQzbQrsVPLjahMhmIeL5VT-coV8JViT6hNUeMVWa7npNz3p4oAihInMsG9IVpGyPdgHXUo1d4QgQczm0WhE9vixBQ.png)
Step 1.3 - Enter your password.
Step 1.4 - Click “OK.”
![Figure 4.2 - Siemens TIA Portal PLC MySQL Google Sheets Data | MySQL Workbench](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e01074270a934298ad03_H8f27n9k8OHIWAFdonoxzqLEZPohHY-pLq-z9LCzbXB39TA4SjTagKzLTsf1BmxVEfwsre1cwNRzc49TIeEXga2As38f3o7GqJiiLCvA_HNgn6qpArN45qbiXddUVaT0tsdjvUICcP7DUGGEtugpfA.png)
Now, this is the MySQL Server
![Figure 4.3 - Siemens TIA Portal PLC MySQL Google Sheets Data | MySQL Server](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e010fc226b18d302ac62_LoEcgiT_LHsf1L6t_iK1TWLbhxwzjB0nL2McYsO4dAsqwqFbuowjEkBf9yNsXzHKLOt3kfwxpI1wt675weTAYgaIxvEDV6LP8BFv4iue0WXim7vopB84sebGIxT4FGffRuVV6m9io3VDxtL8SsSnVw.png)
Step 2 - How to Identify and Add New Users
Step 2.1 - Click on “Server.”
![Figure 4.4 - Siemens TIA Portal PLC MySQL Google Sheets Data | MySQL Server](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e010f54e751c3ae9ddd4_BzuR-8jKilRU_zGmNPTjAa9J3qy-WcHrgZTMRjr6bVxsLqFcvNJ34YiHrJHeBfxox2WlbvrWrQaJrRxbpTUI4qGvPXxFaeSQ8pBgFIJjv4vB9RENoZfhiWAX6L7wWoBm2G1F-WFoxp_MaYGkVXQwFg.png)
Step 2.2 - Select “Users and Privileges.”
![Figure 4.5 - Siemens TIA Portal PLC MySQL Google Sheets Data | MySQL Server Users and Privileges](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e0108c508e0a374ebee4_LTInfpZcfYpQ_4a1b0O8AzNsKOZDplJIGkBV10LVqejJXxsOXPL4hkH5-MfNQ1hVHN4A_eahM4tFeZJc-aW-iqRTv0wktIvF7rf7OlJHUFcOrvYUlPEB-ajLBCGtmXLO9Ec9AyzVIhPrOTeFfdrL8Q.png)
Step 2.3 - These Are All the Users in the MySQL Server.
Step 2.4 – To Add a new user click on “Add account.”
![Figure 4.6 - Siemens TIA Portal PLC MySQL Google Sheets Data | MySQL Server Users](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e010f54e751c3ae9ddf1_PRFdjl_Ak3OO8wEHBjVvDZMtiomCvQnVgYFE-8qAvzZURkYnCtUgwWNzE6f_h_voc3ni3awm7O-F_S0rLxz-WIeObTaxNHPzrpkJh5kJa2SVJPXNfZiH7EKjA_HR7cQ_hllQns8OS3iS1R81527JYg.png)
Step 2.5 – Set your Name && Password.
Step 2.6 – Click on “Administrative Roles.” | To Grant Access to the New User.
![Figure 4.7 - Siemens TIA Portal PLC MySQL Google Sheets Data | MySQL Server Add New User](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e01085a313008ab0c15a_EyR4b7nW9GRQMlx_kERW_mR7tHvGnt9iev1-cdwFaGlOvEcpLKZxNfeYZqaor0zjqwuqv6T-XV2FGbtivt6Cxk8spdiEhaB92SZ1-gVkPE67CmH0v5Eiq1TY3NE8d7cL_rdhYUmFQZk5ft_GYuuGSg.png)
Step 2.7 - Grant the Desired Access Permissions to the New User.
Step 2.8 - Click “Apply.” | To Add The New User.
![Figure 4.8 - Siemens TIA Portal PLC MySQL Google Sheets Data | MySQL Server Giving permission to the New User](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e010091706ef3993a9e3_TQmzdjbu0AUE-GtneH26SqdmqL3ofKfnNjP2eq_ZGfzTttmJq4ZL8tgMH1T3FjLWADTbuXToV6R82PrbzcgAksJ5-6XTiNbN2d95wGVvHDu2IokhPtkKlBpgomJgfRV2GL3R3V3xzlkINdyDApMASw.png)
Now, the New User Has Been Successfully Added.
![Figure 4.9 - Siemens TIA Portal PLC MySQL Google Sheets Data | MySQL Server New User](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e0100f19fe8b4f9d54cb_tNyQMPeKiTQcXKVFjvhuwzaMkDMa6grTf96OlhzsSh3mDigaWo2BZ4cCOz8QMPL-r-HFL5RZfyTdYiuBhgoP54dirin1pscdKsFxsYRhIG_IhGtdDwIuMOFGAg5nvw0TZG3ewqMbvTEH8-rwqqQ9lg.png)
Now, we are granting the “Node-Red” user the same permissions as the “root” user, allowing us to use either of them later to connect with Node-RED.
Tia Portal side – Configurations
Step 1 - New TIA Portal Project
Step 1.1 - Create a new TIA Portal project & give it any name, Click on “Create new project.”
Step 1.2 - Click on “Create.”
![Figure 5.1 - Siemens TIA Portal PLC MySQL Google Sheets Data | Creating a new TIA Portal project](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e010ac64c9a72c5a8770_yjgLLL3-wLvJIagn13uHY5OE8DBQttM8l5JOCoX5Mrv-cKws_iCoVxf9AK-XUNrPpkR3VGPBD7lbcoj5DGxahsZk_yetSIHxM5PHA2NFlqndRfkzmiQggmLGKiFcki4S37aOy3io99EgJxLBCau30A.png)
Step 2 - New Device
Step 2.1 - Select “Configure a device.”
![Figure 5.2 - Siemens TIA Portal PLC MySQL Google Sheets Data | Adding a Device (PLC)](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e01174270a934298ad8e__OvEIkKVPJDdHn0KPaXEUDDgCsImWvqmvLYL8VXfik2oAWWdjZN6WRtmdJSMAmhNhvs08B9qCOi0JtW2XCQDst5ZhOfHXo_U-DDoVRTc9lRxWf7LgSkbSr-ecwD8MOWiR2akAGOCjxUm8bsTcWsvCw.png)
Step 2.2 - Select “Add new device.”
![Figure 5.3 - Siemens TIA Portal PLC MySQL Google Sheets Data | Adding a Device (PLC)](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e0110286b7e39f2597a3_COaueMi8FEEonYoM3Cy0iPkaP34woZ0c3-aMd5ib9bwpYTlzWbttl4EZiqlUiYQIxUHsgvtyBh2dFnPUMBHM5LTd_xbXEmreYn7EKXAcO0TnzX8wUkRnaNCMmcoPEBF55C16gKSCEFcNsZ64P4_AxA.png)
Step 2.3 - Select your PLC.
Step 2.4 - Click “Add.”
![Figure 5.4 - Siemens TIA Portal PLC MySQL Google Sheets Data | Adding a Device (PLC S7-1200)](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e011f54e751c3ae9de53_e2zSQBwIfuiIekXy-D_wNeFMVg0GBqEJH6wd_LP5qJxx0SGP5QT0WloB-Pomd4rqn2zDs3pFJHCxuloCyD9LLQkmjJ8yQzEPvNy4V44tO36f0Mhc6OEXda72lDKyzSeRIMhXhaSk5qn04iPgkX6Kkg.png)
In the figure above, we’re looking at an S7-1200 CPU model 1212C AC/DC/Rly with the part number of 6ES7-212-1BE40-0XB0. Please choose the PLC that matches your setup.
Step 3 - PLC Hardware Configuration
Step 3.1 - Double click on PLC hardware.
![Figure 5.5 - Siemens TIA Portal PLC MySQL Google Sheets Data | PLC Configuration](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e011243369d593feeda6_MG7ZAewDd4E4633anAdXgTFrmqLtagK8ucItpPuJ-OywjHabF_ziz5IMivlQw8T8WoLOa9_gaxE8GEkUFft2sv_PUpwHm-xZaHxAKEPVejTk891_FDVPlkzmR5hhfBeMDbppto0iuh6_p6Sv-JRdgw.png)
Step 3.2 - Go to “Connection mechanisms.”
Step 3.3 - Apply “Permit access with PUT/GET.”
![Figure 5.6 - Siemens TIA Portal PLC MySQL Google Sheets Data | PLC Configuration](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e01149b66aba747cac84_zO2_i8LippHPYRMi-DqjoZpHXde6NYyLH7oNGYYgAqTJSMt3LLGm4TBLND3txsiKHZJ5Mk6ka6uDHxcy-maB3Za24wcIuZv_pO0qXQsh0RbNyPFJCIMg-nteuXAyeER2xgWCZdnJ7shexi5I5w4YOA.png)
In the figure above, later the PLC will be communicated with Node-RED via Ethernet, so PUT/GET functionality must be activated.
Step 4 - New Data Block
Step 4.1 - Click “Program blocks.” && “Add new block.”
![Figure 5.7 - Siemens TIA Portal PLC MySQL Google Sheets Data | PLC Data Block](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e0116b667d45c1223653_SGLQ1-_ZUcF_l2P5CXCnLPW_r9-6wI8yvQpxJVYTHrKuRRKdRvS6NDyXC5U9tgLT0gw7A4zqHK2y3nfYWeljhllKVFNCUwRLd5ukuFzLiqlHU2NDG2VtugNZMIHyCpOwy8ED_c9TvtAGDmKaOyzkHw.png)
Note: The objective is to create a Data block for making some values that will be subsequently stored in the database.
Step 4.2 - Click “Data block.”
Step 4.3 - Click “OK.”
![Figure 5.8 - Siemens TIA Portal PLC MySQL Google Sheets Data | PLC Data Block](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e01182429cf4dd6086ae_kZtzjc8df6U8ZVjqbrrZUoScZ93MNKgK6eGsoVJrqfjxs5Hh9BzEkfI_IXn-phgFK4SrFC92zVTiUeJyQMc2AiljKrzDWVTNLpy3zlcdRFHMwKsiXmDa6wqSBRqbjZ0UbNGBdYM2kUz12ETppEutAw.png)
Step 4.4 - Right Click on “PLC Data [DB1].”
![Figure 5.9 - Siemens TIA Portal PLC MySQL Google Sheets Data | PLC Data Block](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e011091706ef3993aa85_QqhvhXpKu7G9U8OGtziQ_5W7hR4jAhMY9HfMoU-YWH3y7R5s1cM0Vq2xhsftwFxoz-0RGttWC3kq6FtRvLdr9C6adwhKsRBXUS0EqslC8td5i0nTr6P9Jdj4_FynhBzeIgvftZ7vPw40qKLgIQDSUw.png)
Step 4.5 - Click “Properties.”
![Figure 5.10 - Siemens TIA Portal PLC MySQL Google Sheets Data | PLC Data Block](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e011cd1ec7502057cf9c_LjbIQ3cdXErs7h4KUZ3H1SG9TqAqotFaNv1RPDz0lp77NU18lowLh6nEI1ZyeMYFEyZYe8-VXDM-_bxQ_n-p4FXRS9zHv9qzc1rUxcUuXxRXf6x-hE-8eiNK6URNCywxM4Pc2oCODR9vLKGcVhNmjg.png)
Step 4.6 - Disable “Optimized block access.” | To Display Tag Offsets in Data Block
Step 4.7 - Click “Ok.”
![Figure 5.11 - Siemens TIA Portal PLC MySQL Google Sheets Data | PLC Data Block](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e0120286b7e39f2598b4_Tz5OCRpGsQV6AQciV2S7OOS4655e47b8pFYg4YNHqJaDRhqY2GZzG7BSK6A_71jNHmCJt8Hs_arjW4lHq9eI3yTVJwXEN3VORxNg_Vy926SKV4EtnrMuXIip8EAiuTor5EMTmVGndM9VKoyFnBrTFg.png)
Step 4.8 - Double Click on “PLC Data [DB1].”
![Figure 5.12 - Siemens TIA Portal PLC MySQL Google Sheets Data | PLC Data Block](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e0118f965b93a2003d09_cJQhGlvZ-PvGQPojbYdOqdVPQOuoOcBxOUhTQjkKnJhxH44QD8Gt7-5a8e-Tf3D-7hN8rQr81MmXNxUImhUH7NiwcO8wg1CfwphX3I8kkQP0RE5SJdL3flC5wzTk9BSQwOyFcVEs4e0z4RUYGjNgEw.png)
Step 4.9 - Adding Data to the Data Block.
![Figure 5.13 - Siemens TIA Portal PLC MySQL Google Sheets Data | PLC Data Block](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e012978adfabfdfceab2_FjrZgDvYmOM34X7N9eXshxz7GgAC1-9S6DXsoD1m89kXaUIbt7RaPciEPEkYfjQrnXPW6HvudBHgNtD0S0euMLCo0b_py23gGJ3BRTQS9gPsYjtihujxDimotXENDOeoW7Jyt2ybne_q9zAqWoRJHg.png)
Step 5 - Compiling All Changes
Step 5.1 - Select PLC.
Step 5.2 – Click on “Compile icon.”
![Figure 5.14 - Siemens TIA Portal PLC MySQL Google Sheets Data | Compiling All Changes](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e01274270a934298af59_wu32lh8uMw6W45E9Hjz-n0UbhIAwZVqeNl5VgMuUyyUJm3FwEY_YwKNMXRkdjVFCPZcEFfTwfjfeOKaB3bNNIRC5Vi4YURz9d4mQ_1Pv1_MRrVC8rmhLfcB1mTpnb_aFKiqWZQ7VV5I9.png)
Step 6 [Optional] – Run Simulation
Step 6.1 - Select PLC.
Step 6.2 - Click on “Start Simulation icon.”
![Figure 5.15 - Siemens TIA Portal PLC MySQL Google Sheets Data | Run Simulation](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e012fc226b18d302ae47_0jwvLdywYchZd6QUMMRgW-ECKJPxpp7Xhs4zvG7oX9jrSPMlEJms_KlTAaEw9AWyfSeVRpU3_qcemN359JJjMyzXR1RccOBPPD1TlqtizFyJ-RHPyYM2zeoMm6D8uExQ-jJBf6H0DVHBiA4f-n2Ovg.png)
Step 6.3 - Click “Load.”
![Figure 5.16 - Siemens TIA Portal PLC MySQL Google Sheets Data | Run Simulation](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e012a7941a9c149b25aa_WsThk5rRNPSsbp6BnsxQOiBa5fNbLZPmCvgHU3Nh0XnPjQSB90CN7DddNC7ixu9xh_NjRI76culWm_9iX2Miy6RQ8-wFNYSNmuqsR80zV4iysfbijW49N_D2Mj7esaY64xzMXgAg4VgtCEPSljlVNQ.png)
Step 6.4 - Select “Start module.”
Step 6.5 - Click “Finish.”
![Figure 5.17 - Siemens TIA Portal PLC MySQL Google Sheets Data | Run Simulation](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e012091706ef3993aaaf_7i5rSv2SyJZ0_Vw_662fYbRG2B0b7A1HOjJFQT46AA2Lc-k2gIJs40Sp9_Dv-5DM25ZPru6EyChoJB9D5YVuqNqfknc-gqReMiTju_pEGtDK8TUu7Lqxyav6lyc6746o-luY4Sew2yJUviF8mQP5vg.png)
Net-To-PLC-sim side [Optional] – Configurations
Step 1 - How to download and run Net-To-PLC-Sim
Step 1.1 - Go to this Link and download net to plc.
![Figure 6.1 - Siemens TIA Portal PLC MySQL Google Sheets Data | Download Net-To-PLC-SIM](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e012bb7bcb93cc455e52_ZeNMW2q3x75tlL6YsRbXHIhGcbquTqgjeCz2q_9LoeOUSVoYPHZ1zgCva3yKIS2i_6itiJ4Zp0AiIxAH0FEquW-ym5b7KMNW0CTvJSGi7udyxbUWFN3eGq50lf8tjVHDZstjQzlr3Gckexr9mPHqvg.png)
Step 1.2 - Right click on the file.
Step 1.3 - Extract the file.
![Figure 6.2 - Siemens TIA Portal PLC MySQL Google Sheets Data | Extract file](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e0126b667d45c12236d8_2mY53qBcxQXhC5NTY6EoL0hcHJjebl9GLM6ZnwJB_Q1asOShvfJ8-tNHOwq-Fe7xOVTZoTqKuHzf4hiAsgAGKLjijgwyBlvJIbYhzPuud0VWcG7i6ipXC_eNBy5qFzKtVn0jLgyEEHTX_5rF92SG8Q.png)
Step 1.3 - Open file then open “bin file.”
Step 1.4 - Right click on “Net-To-PLC-sim.”
![Figure 6.3 - Siemens TIA Portal PLC MySQL Google Sheets Data | Net-To-PLC-Sim](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e0129c3008ccee47457d_9UUXtkmPblEqsucbHWCtN18clv3is5U_eTjRevTfzG4Cp7w2alQPGKpKkqgsmvoeiD5ZOoPe5vQ6lvm7HJ6mAX5Nm8pj65XJm9pDQv0Y0qRDKbIpM5d7UyUjRLVYx9dsNelqljUhi7EN3icDiwE26w.png)
Step 1.5 - Run as administrator.
![Figure 6.4 - Siemens TIA Portal PLC MySQL Google Sheets Data | Net-To-PLC-Sim Running](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e012cd1ec7502057d2b5_kJh4px7ZC44vUxFH3oNNXNmg2jH0-flUGFpbqSi8wZwgGxv8ugu5ymc65pyGILjKErDDno1jyBxgD-nc5VkmcQiF6K2zWS16-3S5ASVRqhXjKVMGba_13UY2857vI9_EThUUoSHHyBrglHLyXLmjBw.png)
Step 1.6 - Click “Yes.”
![Figure 6.5 - Siemens TIA Portal PLC MySQL Google Sheets Data | Net-To-PLC-Sim Running](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e0120f19fe8b4f9d567c_3qm1IlSstIKKUSGHh4mTwMk_Mqzafu3JozNzHNCXtBVPvhPTorTPIces0C9G8_CqZZotJv38ESyVZznlLSuuMBJPDvHrCYVaGN-ZMHaJxMSbNF064tB8PshjzAYRwpS6Dne0M2Kc5U2VCQPZd0phbA.png)
Step 1.7 - Click “OK.”
![Figure 6.6 - Siemens TIA Portal PLC MySQL Google Sheets Data | Net-To-PLC-Sim Running](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e0120286b7e39f2598f3_HqJRZ93CUw_-7x9mD5pkOmSZSmDJudF4s-ZJLC3TQPJyugZaUv0rz0l3pz31UJp8TTtbj3dOGiKpAUGP3LUZ-RenHDeec0FXaIcSgZfGgmMVAP0_zAZ4de-PbCAzFguouhsOYS8trzNmYz1aayjYqA.png)
Step 2 - How to find Your PC's Network IP Address
Step 2.1 - Open search Window && Search for “CMD.”
Step 2.2 - Open “Command Prompt.”
![Figure 6.7 - Siemens TIA Portal PLC MySQL Google Sheets Data | Command Prompt Window](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e01285a313008ab0c312_Fwx5nQC7Txp7yj8OC-TYJdCaVDG4Vbv5syItGmYeWcFYZK238_TPHakeEJXJFpw-z1YaKz8RIv7iF5u6LyH74WxWM576JOs-Kj5mVEzeOGypqeRL9py7wSnekfFZSklXTWuHtlyEpmXu_HHbKNICIg.png)
Figure 4.7 – Command Prompt Window
Step 2.3 - Write the “ipconfig” Command && Execute It by Pressing “Enter.”
![Figure 6.8 - Siemens TIA Portal PLC MySQL Google Sheets Data | Executing the ipconfig Command](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e012ba903f1d68fb4cad_kERLFL7hQ7YztACGU7tzXHoB0ODhopdGvHlSqzR67MgiRjBSGdkymqkmajB38wkU8rN4mi7I1KVl4o82G-WPDmSrUgED5FunsaiApY3EI1SvsxiSWZLkmgd8VwJxNBZgyEJkcveSGu6wmZu_Zu0PNg.png)
Step 2.4 - Scroll down to Wireless Lan adapter WI-FI. | Your PC network.
Step 2.5 - Copy IPV4 address | This is the IP of PC Network.
![Figure 6.9 - Siemens TIA Portal PLC MySQL Google Sheets Data | PC Network IP](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e0130f19fe8b4f9d56cd_mUxRModB8vvAZnLQM6irKPv9V8zGvWrioQSmvZV-nz3VBDk_e6KxKqno63PNw-vbL9e0l3wxN-QTwTwQsZPHsHeX_LStII9ZKe8xFY8fr-ie6KdTlsomtT1sed01Y0nle4v2UsP9pgFv1oBboeXicA.png)
Note, The IP network address is required for use in Net-to-PLC communication.
Step 3 - Configure Net to PLC SIM
Step 3.1 - Return to Net-To-PLC-Sim screen.
Step 3.2 - Click “Add.”
![Figure 6.10 - Siemens TIA Portal PLC MySQL Google Sheets Data | Net-To-PLC-Sim](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e013608275c82649a161_2u35KSUEMvpDa44nklp7_-0VVtwS2i5H2cHAoj3nZqvvLIMIplvYgbxYm6eB7AvmRTfhBxS19BQpvgI8Oyh3kgOpTEDth3BBc73oElg9olilWAooeeuGaJhEwRogYLz4Q8Qwtlpa0lUB7PO2gnHLqA.png)
Step 3.3 – Set your PC Network IP && PLC Ethernet IP && Rack and slot Numbers && Click “OK.”
![Figure 6.11 - Siemens TIA Portal PLC MySQL Google Sheets Data | Net-To-PLC-Sim Configurations](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e013978adfabfdfcebfc_4LMFZ9N0D0B9V_7uZhi6uM1ON4gG7rbL3akX9k61ATna9aXHTZouKj67nkOxsPXgVmiKtMZnF_447k65qVbD-6dTRWyeGS_wfT_xDvZigiC3Zn_p_8AxM38bKxzfoORLj9uusSGGbxx3Y7GZ-qkqEA.png)
Step 3.4 – Click “Start Server.”
![Figure 6.12 - Siemens TIA Portal PLC MySQL Google Sheets Data | Net-To-PLC-Sim Running](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e013fbebea6163a2f3fc_mZEcoBemaPcxOK5UPSirhSxd9GSufiPGHwL49VD6iHVwO317gQOXYhj4T0ZoRADG5lYflFBwKnf2MG5uzURBaROXio1J7DTSc97glotJZd0Oc9JCb5wqJS5aKKkjTcg2-UycRnCS0l9nCGDEVEg1AQ.png)
Note: The PLC is currently running on your PC's network IP.
MySQL side – SQL Programming
Now, we're going to create a new database and table to store data. We'll leverage the features of the MySQL software to quickly create the database and table. Additionally, we will explore essential SQL queries that you'll frequently use, such as insert, update, delete, and select queries.
Step 1 - How to create a new database
Step 1.1 - Open “MySQL Server.”
Step 1.2 - Right Click on Any Empty Space in the Selected Area.
![Figure 7.1 - Siemens TIA Portal PLC MySQL Google Sheets Data | MySQL Create a new Database](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e0138c508e0a374ec17e_X5-PcrMXzHiAHGG3VvWF10NOjm2xKIl6KCekba3MZO7ZGjnGQ9E9VHuyr2_iUfkaYcjcQKWDBwHpGUM5oQRZUy4WsI1NkYdB9444HP7ilhzsAAvu-77IvI6EGEpasM0nEucJpdD7kFPomkomLouWBw.png)
Step 1.3 - Select “Create Schema.”
![Figure 7.2 - Siemens TIA Portal PLC MySQL Google Sheets Data | MySQL Create a new Database](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e0136b667d45c1223738_Lj5nyKgHWSe5lbJNYzckY_44eoC2mesBNsAF-3IXQytM9zE7LHwFiNi_cD530QTFt23oon3zVOMUPiOhvhgN885uh5lvx9tk8MqFr0wcuhE55Ose4MYBzdnpYIdIfcPmWEHuCeNTa5yoa4dQEF9OdA.png)
Step 1.4 - Set name of the new Database.
Step 1.5 - Click “Apply.”
![Figure 7.3 - Siemens TIA Portal PLC MySQL Google Sheets Data | MySQL Create a new Database](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e01374270a934298afb5_KNBdGy5C0VbGMyVMCheFUkqzYaCayybDsiOESGBWdTOlpZ0E9265FztL_TbWX-npDQCqCTfFF3LErxVnvU-4QJA491tV8pwAAUtySl5oDskfaMCdrnb16O9GjglznHmC4wXiMH86efTNb8RPkPDyhg.png)
Step 1.6 - This is the SQL Queries to create a new database
Step 1.7 - Click “Apply.”
![Figure 7.4 - Siemens TIA Portal PLC MySQL Google Sheets Data | MySQL Create a new Database](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e0130286b7e39f259938_oNcXIiQT-5R3e84LMUkr3TOYBvTTAqtYj1dOYjQ8VFoBTS42fkRtF5zobGphV-n07b7CrQXRmaFJvFVVqkjooZtxb5zZOYhmOF_xQTtiteEkFHZcVHXXKHlCeg8kdzyUCX9UoU1F5N6Q3CR8vm40PQ.png)
Now, the New Database Has Been Successfully Created.
![Figure 7.5 - Siemens TIA Portal PLC MySQL Google Sheets Data | MySQL Create a new Database](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e0138c508e0a374ec1c4_EkxWlBUHMD3qcZ5RG2yLNC7ZhDLNloeO9QFvQY_oLs9m1mIinrCkMiQCuomsPWgXRc-P3xHhaMd_IS8ONLsy6n8FJDZ9UXbgS9PzL4rNY-BG8TagknRMQmrLoBpasSZl1Xx1GQter3qocl24n6Bc6Q.png)
Step 2 - How to create a new Table
Step 2.1 - Open your database and Right Click on “Tables.”
Step 2.2 - Select “Create Table.”
![Figure 7.6 - Siemens TIA Portal PLC MySQL Google Sheets Data | MySQL Create a new Table](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e01349b66aba747caf3d_X90UYgRjwjbUtHljVVgHo2JlPVG5QTbcAlh9JE4hacsRTrfYof1OSn3JRMsWx2M0BzMizYiA1nfCAxSX11s2kxE2NpoMkGsSSJGEfJ32YIpJY1mtSNTh0DES9bQwBdlpoXLKsHcQpp9awM8ef_jeRw.png)
Step 2.3 - Set name of the new Table.
Step 2.4 - Add your Variable will be stored later. | Note, we will set the Data type of var1 to Bool later.
Step 2.5 - Click “Apply.”
![Figure 7.7 - Siemens TIA Portal PLC MySQL Google Sheets Data | MySQL Create a new Table](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e013978adfabfdfcec57_p08PVgPMpUVG10u8II1i8gFMbtHMK-8hVXwl1TkdgBJaZ_ovn0BrIOJbyxfqgD8ainuDpxBRNxqK5eh8V-C0gOan5teukmEH-lREEQIr-HFOvpB5sEyjDqphaX5sE1GVdZe8QDw2rz0bQM_9p_dJ6w.png)
In the highlighted orange area in the figure above:
- 'PK' signifies that the 'id' will be used as a primary key, ensuring the uniqueness of each row.
- 'NN' indicates that this field must not contain empty values.
- 'AI' designates our intention to create an auto-increment ID variable for new rows, guaranteeing a unique ID is generated for each newly added row."
Note: The data type of 'Var1' is Boolean. If you encounter any difficulties setting it in step 2.4, we will address it in the next step."
Step 2.6 - This is the SQL Queries to create a new Table.
Step 2.7 - Click “Apply.”
![Figure 7.8 - Siemens TIA Portal PLC MySQL Google Sheets Data | MySQL Create a new Table](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e013cd1ec7502057d3a3_5-EtZk0ofQuyAzEdSMW84t2ipKksQ3EL3Y5ze-BIxaOlafGBHQ9g5Mr7aVXGJKR3vdpHOun2bqntKYiLjt-_gLj82qA1i4zclqI8X6KR0jLiWm-cA9p0DMiWuCWa7LTqJIVrPGBY0EFVP0UPUVJmig.png)
In the highlighted orange area in the figure above we set the data type of Var1 to Boolean.
![Figure 7.9 - Siemens TIA Portal PLC MySQL Google Sheets Data | MySQL Create a new Table](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e0140f19fe8b4f9d5901_wXKl-pN51q8bcKFO_Hm7sugKkWi520wjbNp-2gDeKwgIiwhlyoSo8mtKHIEQZm-eisBy0t-x8UBs9kgo3uPNd2K8uDgm47btE5PxYw7ehe-QqrMtJ5QvLyPIcBkjt0GtZJDt_s3mdTNAFtjJgI0zsw.png)
Now, the New Table Has Been Successfully Created.
Step 3 - How to Create insert SQL Queries
The process of inserting SQL queries involves adding new data to the table in the database.
![Figure 7.10 - Siemens TIA Portal PLC MySQL Google Sheets Data | MySQL Query](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e013774d8856e9118015_RdGJevvqP8Unide-psd6nqZ99_hT9RYdzdTAT8CwbILqW16Ja_3K_Dh9Sg2cLgNnxQId4qxWECCEE5Z5C1tbOCtA-c8bYWrYRdD2UlBYu1p2-qqwTxHk0XKB30JkS7CDSYhtgbb7z0BbZOIv-yhBLA.png)
In the figure above, you can see the Query View, where we will create and manage our SQL queries.
Let’s learn how to make insert Queries.
Step 3.1:
We must select the database first by using the format: use database_name.
Step 3.2:
The general query format for inserting data is: INSERT INTO table_name(column_list) VALUES(value_list).
In our case, we will use the table named 'plc_data,' and the column list will include (Var1, Var2, Var3). We will populate the value list with the specific values we want to assign to these columns.
Note: Instead of specifying a column list, you can use '*' to indicate that you want to insert values into all columns. For example, INSERT INTO table_name * VALUES(value_list) would insert values into all columns of the table.
Note: it's important to use a semicolon ' ; ' at the end of each query.
Step 3.3:
Execute the query.
![Figure 7.11 - Siemens TIA Portal PLC MySQL Google Sheets Data | MySQL insert Query before execution](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e014acddf2d3dcc877cd_XDH5ESILWPRMIAuTVt1iOU0s2k0525MCYF2yg_yQmHNUtEIMzV5HR3gmx8deA9VODABbR2TsGUKwRmnhwXrXFpJ66hBN52GjmYaTjJrbLnFDgban3HzKk0IT8Vrsh_W-14NJiCmBOjIS9Bc_dY-Flg.png)
Note: In the figure above, to execute our queries, we need to click on the icon highlighted in the orange area.
![Figure 7.12 - Siemens TIA Portal PLC MySQL Google Sheets Data | MySQL insert Query after execution](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e0146b667d45c12238b5_N_CSGsrxQO2GEOvJXvu1EYjhKTIaCLePSDTQt9e2dkXgR13qbN0p_0ypLmiisWFnqPjGuDsO4iX5DvHaHWtt1b557bhxCYwcNjVed1xFsdjmXvzOSmzG07-wW-I65BD60QP6nZjqSBLR5Acmla9V2A.png)
In the figure above, the executed query was successful.
Step 4 - How to Create Select SQL Queries
The purpose of selecting SQL queries is to select and display data in a table.
Let’s learn how to make select Queries.
Step 4.1:
We must select the database first by using the format: use database_name.
Step 4.2:
The general query format for select data is: select column_list from table_name.
Note: Instead of specifying a column list, you can use '*' to indicate that you want to select all columns. For example, select * from table_name would select all columns of the table.
Step 4.3:
Execute the query.
![Figure 7.13 - Siemens TIA Portal PLC MySQL Google Sheets Data | MySQL select Query before execution](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e0148c508e0a374ec303_CnYg3UoWfVVRY8qLhtKGuA8wb3S9HgcTrkPlg_nYuATcemHvBn0QUY9gRUuPx0HC9eA_NWOLp03Z5-b5ykdbQ4-muIfJ92WgRYHXDda8fHAUaRNNH95MzhKknVBqoI4vHhthSdhfUiM7x44itf4gBw.png)
After execution, you will see the selected data displayed in a table format.
![Figure 7.14 - Siemens TIA Portal PLC MySQL Google Sheets Data | MySQL select Query after execution](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e014bd538012ca5d7b99_McmVYPyBL3egX-AYfsAnHC0rB_bj0YH85qIOR-YMPPLDNhU-r43uO8eeXamY_hbBbeeEo-g7cgx95T1H0NKOyxD0KFwBypm1nGPOiZ4B4fUox_V0YRAVh2PeszcMzLKJBDZ9cNhhwXrfnon9vgzGxA.png)
Step 5 - How to Create Update SQL Queries
The purpose of using UPDATE SQL queries is to modify or update values in a table.
Let’s learn how to make updating Queries.
Step 5.1:
We must select the database first by using the format: use database_name.
Step 5.2:
The general query format for update data is: UPDATE table_name SET column_name = new_value [WHERE condition]
Step 5.3:
Use select query to see the new result.
Step 5.4:
Execute the query.
![Figure 7.15 - Siemens TIA Portal PLC MySQL Google Sheets Data | MySQL update Query before execution](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e014f54e751c3ae9e0c8_vOCI66iCLGrqC-56vHvRHRmgQxo23zSdw0uDuCqAOztKPhacn5qOt_KcPko9oE3mSXjfIK-Tl_-aZrlVT59CUkckNB39a2ozSaw-oCLL-QLLAqba50mHFhBd9XyRa59P4hRlwJCgFUff3lmyc48j9Q.png)
After execution, you will observe the updated data displayed in a table format.
![Figure 7.16 - Siemens TIA Portal PLC MySQL Google Sheets Data | MySQL update Query after execution](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e01482429cf4dd608a85_F5C_GyjehKbyKnzemHfcd0W1S89xqF2HUaBCVkdVym9jiPG4gpJSVqP3XjmJRtEqSIHcvEfXMT2zyJ_-o6m0yI9-QSRd-tGQKQM_y8UEmhjsGitQDI6g3IDBxJtGGwwexY6owigNZXF1V1D_P5SknA.png)
Step 6 - How to Create Delete SQL Queries
The purpose of using DELETE SQL queries is to remove or delete specific rows from a table in a database.
Let’s learn how to make Deleting Queries.
Step 6.1:
We must select the database first by using the format: use database_name.
Step 6.2:
The general query format for update data is: Delete From table_name [WHERE condition]
Note: When DELETE queries are used without a WHERE condition, they will delete all rows in the specified table. You can use the format 'DELETE TOP number FROM table_name' to specify the number of rows to delete. For example, 'DELETE TOP 10 FROM table_name' will delete the top 10 rows in the 'table_name' within the database."
Step 6.3:
Use select query to see the new result.
Step 6.4:
Execute the query.
![Figure 7.17 - Siemens TIA Portal PLC MySQL Google Sheets Data | MySQL Delete Query before execution](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e014fc226b18d302b115_Yf6LrPKio4mISkpUmchA3LAeeppWjVGIAKZni_tQ29LqzBe1FCm1pNcMS3YYQEP2xWHEZB6w40C-MFULxfDcFqBpTsWdJJJc1dm8mykPapF19_KUpEHY7OLE792R0QJLEpxM6Gi2sL0S1CQbfAlRyg.png)
After execution, you will notice that the deleted data is no longer displayed in the table format.
![Figure 7.18 - Siemens TIA Portal PLC MySQL Google Sheets Data | MySQL Delete Query after execution](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e01482429cf4dd608ad1_WzoMDSzQKtsh3nS8mCn0MT84h70w1Ech6PMsb_cuDDzQzXxCSjtfFZgfLwKp0pzb0UMzUwsiMwZNzmrkFpRnojpl8ZW1vhTtqds-7WKq2rGSiia9OoWNNfeqmI6jiEujas-q2FAAzJlwnrV_5QHRHQ.png)
Now, we are prepared to work with the database in Node-RED.
Node-RED Essentials
Explore this tutorial for comprehensive guidance on using Node-RED. It covers essential topics such as reading and writing data from a PLC and creating a dashboard. We will integrate concepts from these tutorials into our current guide.
Node-RED side – Configurations for MySQL
We will need to install a MySQL palette.
Step 1 - How to install MySQL palette
Step 1.1 - Open Node-Red.
Step 1.2 - Click on setting.
![Figure 9.1 - Siemens TIA Portal PLC MySQL Google Sheets Data | Node-Red](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e014a7941a9c149b26f6_2AmiE6ZTdj8Z37uAL-QWuMCN7MWGxkYnqEGc6Gikgrv23_wDMRWdTEgqagwq3DKGdHnVcvDBBp9ZdlUjzxl_cwH7W4OIf_qfYirpzpOam4k46UgCDlYD0Egdgjt2bdntpYQzkPXn3d4spP38cZpXng.png)
Step 1.3 - Select “Mange Palette.”
![Figure 9.2 - Siemens TIA Portal PLC MySQL Google Sheets Data | Node-Red Manage Palette](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e0145bc1b66b415f77a0_z_-umWRHCR_iop0Ib3zGxuU9lltt78SblPPTt94TBmWEq8GhswYhAcTpG5zMRHIqqLkNf-Tl-t1JdQEiPNNGgtwUGxDf1uPEOijzfWlPtUv7sJaM4vvTTExZaP2vSZNNhnNuGbsYbehMhJU7By17Ig.png)
Step 1.4 - Click “install” then Search for palette “node-red-node-mysql.” && Click “install.”
Note: already installed.
![Figure 9.3 - Siemens TIA Portal PLC MySQL Google Sheets Data | Node-Red MySQL palette](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e014ac64c9a72c5a8b3b_BgGXMUzns2FEDDHGjES7ouWceCaWrj2zdnwKEuPzceFEte_t2vdOLuIPsbPBcZ4dq3zQ4IyBnFuMLJ3haiZ2fNcyNz5V9rmxyMnCUH_0BL2HU0bodDrEtEt9zlKLJV_F36DmUJ0fHq7Tm1jDi-VjLw.png)
Step 2 - How to get mysql node
Step 2.1 - Go to the node list and Search for “mysql.”
![Figure 9.4 - Siemens TIA Portal PLC MySQL Google Sheets Data | Node-Red MySQL Node](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e014040afbb97f969a7c_G-hRdmtKksKwkAXEqbXc7CVQND6EB3KUumhrxPWC2eTyS9R6oSI73jav0AHMtK1SKnHRQ0Urn7TgBHXdJCcSjydZLPEKRidPzK9TGBocgqjMYcwkgQGSiWaRplnh9794VQsjPHgwYIz9FR3MoG7wlw.png)
Step 2.2 - Grab mysql node to the flow.
![Figure 9.5 - Siemens TIA Portal PLC MySQL Google Sheets Data | Node-Red MySQL Node](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e0158f965b93a2003fee_RouoPnl-9W4vNlUamxNo6Zl1dGhFuReVeemexV2rZYQnqC0Uu44p3QrAsU1geJ1RrYGjQkZg3Ym9sQkFkMMjckwE6SDeLl-TNlTmUcvs2gAe3h3Ded9M6_TfxYD_phYu4WM7Eqnw4pNJQ_IxI6foVg.png)
Step 3 - How to Connect MySQL to the Database
Step 3.1 - Double Click on “mysql node” to open its setting.
Step 3.2 - Click to add a new mysql database.
![Figure 9.6 - Siemens TIA Portal PLC MySQL Google Sheets Data | Node-Red MySQL Node Setting](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e015bd538012ca5d7c7e_WkQFkNsDlGdozXFamyJWSIOQ4buiqFxGuv2HpsY7KjmVSdkFcPy4xs2JuTOkNPXtFd57q_xrUaf7urKGwIvUer6yOkwrVuvi5H40p5DkxmbyHavIN8ZpLCA_fwLZbjZ5qDAWrXWvWaH9tB7FIRGfBg.png)
Step 3.3 - Set your user and password in your MySQL server && your database name.
Step 3.4 - Click “Add.”
Note: the port must be the same port of your MySQL server, check it from your MySQL server.
![Figure 9.7 - Siemens TIA Portal PLC MySQL Google Sheets Data | Node-Red MySQL Adding Database](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e015cd1ec7502057d510_YflsKH2MC8QAMj0xF53f4puYipuJTD8_J9B9w14agAnszKIrlxc1VBkVtl9fcx5-QdC-4XVBQIB8W3MTeT6XsjOD-Pet91ms4SqUQryjdzfmwx08d7bCnblifLE4aub4q7ZG4QpT8Oh_h9adRtbw-Q.png)
Step 3.5 - Click “Done” Then Click “Deploy.”
![Figure 9.8 - Siemens TIA Portal PLC MySQL Google Sheets Data | Node-Red MySQL Database](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e015774d8856e9118276_GOk8KTZcnaetmKnvib4ZN10ylJAGO8f24rnsc0ZaA-c8wzKSNhCD-EaQnPeoUdGYDbBuGOgG_RRdzkXMTPS1qt80afrOJ4EuEDdSEw95pspLvx0wPXvr6Gb7nyywkPzojVaVk582JRpOmJHxei3LkA.png)
Now, the MySQL node is successfully connected to the MySQL database.
![Figure 9.9 - Siemens TIA Portal PLC MySQL Google Sheets Data | Node-Red MySQL Database](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e0156b667d45c122398b_6oukFWhvBoIpxKAwEPRm8GQIQgUP0Sq6rAPSvJNReF57SeVaU8XS60e104PMk19F2mqI6I7Q72hOwZ1xbdyOTwdeGmw4ywHFTVutjxrDWOdZtavH4ggQtUTtmtqc3aGb83ivbkgJAmPBpqTaylkumQ.png)
Node-RED side – Dashboard
As the tutorial mentioned in the Node-RED Essentials section, we will now swiftly create a dashboard for reading and writing data to the PLC.
![Figure 10.1 - Siemens TIA Portal PLC MySQL Google Sheets Data | Node-Red Dashboard](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e015051fa172aa620244_bG_hmGHdZGFVU5fB4xl6leAUKCImztd5OmB03eECwwGw_0zqpr8VittiPz-ium2CmyRuhvJNY40xdA3DfiEasnhjUK_fZUWThgUfm0sj3BTCm7BfuEwB7n0xVQaf9uOrOmIWl0vgyF92m8OA4S8nuA.png)
In the figure above, we have created a simple dashboard that allows us to read and write data in the PLC's DB.
Now, let's explore how to send this data to MySQL database.
Node-RED side – Programming for MySQL
We will be using insert and delete queries, as explained earlier. To prepare for inserting our three variable data, we need to make them global values so that we can use them in any flow. The format to set a variable as global is “global.set('variable', Value),” and to call them, we use “global.get('variable').”
To ensure that these variables have a value, we can use the format “global.get('variable') || 0;”which defaults to zero if the variable has no value. Let's proceed by making the three variables from the PLC's DB global.
![Figure 11.1 - Siemens TIA Portal PLC MySQL Google Sheets Data | Node-Red Flow](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e015978adfabfdfcee24_j10R0XiamO-lqVEsVWbKMkkkH9dmjU2WbUrX7muH93rssffI19zeE01PSro4KS8RaSntV0gvG7bGsNaTmChe6t2orQiWjPnVrpxRuJumwJg-EIekvuQTbkwahV2TsDbLDtJZvNGF-diJeg0p7cMVyw.png)
In the figure above we will configure the three function which connecting to Reading S7comm node
Step 1 - How to Make variable global
Step 1.1 - Double click on function node.
Step 1.2 - Making Var1 a Global Variable with a Value Read from the S7comm Node.
Step 1.3 - Click “Done.”
![Figure 11.2 - Siemens TIA Portal PLC MySQL Google Sheets Data | Node-Red Global Variable](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e015375f99121077ba58_VzHxpwFlJce1aKit7oHzJXigeYe7urAyMoAOUVPd3xz7LVAROrwIYLMbKXxAm78GWs0COByDjOldnwKb2zchHQtKp0AfDo-2uK_q9-Kft4oGvQaJRk33jtblNPQrIcc5ELfGzLTRSFiifyigdih7Kg.png)
Similarly, for the other two functions: one will set 'Var2' as a global variable using “global.set('Var2', msg.payload),” and the other will set 'Var3' as a global variable using “global.set('Var3', msg.payload).”
![Figure 11.3 - Siemens TIA Portal PLC MySQL Google Sheets Data | Node-Red Global Variable](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e015a26c484eeb218e0d_jGtExjGpsWmSxAvSz4BidEhcSno3Ee81W4xUU3eqE5o7WEz7pDP4O725QcVEOSjIq2EO9OujFUTpyDVDD4NfbgO0vB2b8cKFf2YXYXGtMOPialrxQhIdhO8ty6zrBpbJVCM_14zdbkTJSN4Q50VpFw.png)
Step 2 - How to get global variable
Step 2.1 - Grab a new “function node” into the Flow and Double click on this new function node.
Step 2.2 - Retrieving Your Global Variable. | Note: We retrieve the global variable and store it in a new temporary or local variable.
![Figure 11.4 - Siemens TIA Portal PLC MySQL Google Sheets Data | Node-Red Get Global Variable](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e01549b66aba747cb647_ZIU291z4BJN0nfNoPmkljMqheJ70zLFMmNki6IZt1zmAzfcn97ntM1vvfPXIq9hD6EIaGodWSiw0z9buni_nsnJBFt-q4xKHNhtucSpWqBA0neSiTlEVizCqtrlqsmdIdJLs4jPNJEvNe5oFnD5OXQ.png)
Note: To create a local variable in Node-RED, you can use either the let or var keywords followed by the variable name and its value. You can also define a constant variable using the const keyword in the format “const variable = value.”
Now, let's explore how to insert these values into a MySQL database.
Step 3 - How to insert values to MySQL
We will employ the INSERT queries, as explained earlier.
Step 3.3 - Use insert queries as string in “msg.topic.” |Note, “msg.topic” property, which is a special property used in Node-RED to hold the SQL query, is also used in different cases.
Step 3.4 - Click “Done.”
![Figure 11.5 - Siemens TIA Portal PLC MySQL Google Sheets Data | Node-Red Insert Query](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e0150286b7e39f259aa1_lB9Gj22x7o9vYIBi9eQpBcSG-sLrcFl25SiJMeuKGVXziBjTYhDMFAy6d35RDT4lU_X0dtUfIhV6_GbaSlIxH1mg9NAPSNjnsF0YIrBahhdpyGld0WR04wSCXP8BAp0PIHyM61Z6hJKkaHhhLt68oQ.png)
Step 3.5 - Connect the output of the function node to the MySQL node and use an inject node to trigger the function node and insert data into the MySQL database.
Step 3.6 – Click “Deploy.”
![Figure 11.6 - Siemens TIA Portal PLC MySQL Google Sheets Data | Node-Red Insert Date into MySQL](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e015375f99121077ba9e_BJ_icde1tpkZo79MNIN5F-ofBFroS9b4KvDKQJmTobEZj7X8ft6BNFwG3cZWrbk3CPHLL59nlkrQaybCIplo_MXKrVlYwOT9_q3hZ2_arIEfMm_nAIxb29dhrEG68-VgL1dnm4wSLFyj3IRR6f7PHw.png)
When you trigger the function, it will insert data into the MySQL database, and you can verify this by using a select query. Please note that the 'id' is set to 7, indicating that this data is the 7th entry in the table. The first 6 entries were deleted using delete query. As a side note, you can configure the 'id' to start from 0 each time you use a delete query. However, for the purpose of this tutorial, we won't delve into those details. If you're interested in learning more, we can explore this and how to store data with Real Time in a future tutorial.
![Figure 11.7 - Siemens TIA Portal PLC MySQL Google Sheets Data | MySQL Database](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e015978adfabfdfcee56_550Y1xwt_O6ssExSxev528Ko-hnk34qDrzm59XBrBQIBMTS_grR8H1lG-X5xaHMWA-q7GTfURV1YscuoVZI5BTk7IZWBbHiQw6HKrnlTs4qdG9-NM5QI1MHCXE1Hdjpx0K83QWKOXwnpoGP3Pj3AVA.png)
Now, let's discuss the continuous insertion of data into the MySQL database. However, there's a challenge here: if we use an inject node to trigger automatic insertion, it might insert the same data every second, and we don't want that. Inserting constant data repeatedly isn't ideal. Instead, we want to insert values only when they change, creating a new row in the database when any value changes. So to tackle this challenge, we will use the signals output from the s7comm node to trigger the function node responsible for inserting data. However, there's another challenge: the s7comm node reads data every 1 second. Let's explore how we can overcome this.
Step 4 - How to insert values to MySQL Automatic
Step 4.1 - Grab three “Filter nodes” into the Flow and connect each one of them to the output of the three Functions nodes of s7comm.
![Figure 11.8 - Siemens TIA Portal PLC MySQL Google Sheets Data | Node-Red Filter Node](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e015978adfabfdfcee89_Eo8gz-DuAfnvX7nkfTUo4tCres2vYJEJh68wAVG5SslEzWM7Og4Cs3lNCkpxUDR1vDsEvRfNRYX6nBqqWk9AJgetil_OxGMkojIlkxJfqV0LLNG5c4vWsjooKPM3pCZGWXyNCU5z1bXJPEkh5HayOA.png)
Step 4.2 - Double click on “Filter node” to see its setting && Click “Done” after finish.
Note, we will leave the settings of the filter node unchanged. Its default functionality is to block output signals unless the value changes. This ensures that it will only provide an output signal when there is a change in value. While there are different modes available, we won't be using them for now.
![Figure 11.9 - Siemens TIA Portal PLC MySQL Google Sheets Data | Node-Red Filter Node](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e016cd1ec7502057d592_QHSIogp0SE62eACkHKVvspLJag6KQC1qlbzanuSd8_Sx3Qgvwhn82-6_8Ht8AvvzrUSWsQUoabq-n8Z_Bb2abgStnv07KXJsUcH5VXfn2MDXhpVKxeOPFKlmrQuOsi2p9_seI_ZyfP73Ty9p8Ex-9Q.png)
Step 4.3 - Grab a “link out node” into the Flow and connect with the output of the three “filter nodes.”
![Figure 11.10 - Siemens TIA Portal PLC MySQL Google Sheets Data | Node-Red Link Out Node](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e016243369d593fef2d7_AOYk2bkdGt5JL-2aOh7GznKYbsF6MsNjSxcukW4b3PFG_CZtIF1OrRDNptt_v3Emou1H_QnxgROC4fVD2IehTVkx0aUusxhDTdu9AAwUAlGUSLoKKDp0Leilwmz9F6XMqjFno_MSPaz0Zq2z_chrvg.png)
Step 4.4 – Delete inject node && Grab “link in node” into the Flow and connect to the “Function node of inserting Data”.
![Figure 11.11 - Siemens TIA Portal PLC MySQL Google Sheets Data | Node-Red Link In Node](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e01685a313008ab0c617_C-cVQfNPIaSmP28mCEIAEHH5vavZaCFm7bjNwhFpltZHWuE9_Xzh5XmLet1izUmZx0I9Zcja8swox89ecTjpOJroy7AeGwG0QyMfI-fkGsobs_vnz51g1gFURHCcXI64osjPz7q8aal9iIT96O2tPw.png)
Step 4.5 - Double click on “link in node” to see its setting.
Step 4.5 – Select the link out node Then “Done.” |Note, while it's possible to connect the output of the three filter nodes directly to the function, for better visualization, we are using the 'link out' and 'link in' nodes.
Step 4.6 - click “Deploy.”
![Figure 11.12 - Siemens TIA Portal PLC MySQL Google Sheets Data | Node-Red Link In Node](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e016fbebea6163a2f9a4_DwOVOGxazyPmcavYTFeaplVGAOly4tGJ4POV8X8CbZgHiKgggIXGBk4jsAfcSkGphnQHV1gT6T_Upg_72tbIqVt6uxYVUYYKDey8shXMe_7bq3meTEB6xO6wUBL0wBDGP00RfBR56lriTJMJB4OxLw.png)
Now that we have everything set up, let's learn how to display the data from our database on the dashboard.
Step 5 - How to Display a Table of MySQL Data on the Dashboard
Step 5.1 - Grab a “Template node” into the Flow && Double Click on it.
Step 5.2 - Add to new Group && Edit size.
Step 5.3 - Write an HTML code for the table then Click “Done.”
Note, you don't need to know how to handle HTML code; it will simply define the structure of the table that will contain data from MySQL. You can utilize CHAT GPT to assist you in generating some HTML code for this purpose.
![Figure 11.13 - Siemens TIA Portal PLC MySQL Google Sheets Data | Node-Red Template Node](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e016acddf2d3dcc87945_Neuh0L2sFIf4VbFxDyoNG6-cqzfLTH6DFzoAMGTnsVNC0MvOuiDzk2_AFPtyoizym_Uv0NJ5GQ3NfCnbVzLtWruBZ6UWTNAhgOpDejyqAUa59wL6JYeyggUhoy_Y5ev11lzBIxkcmLzOjWrcEh9Rfw.png)
Step 5.4 - Choose the 'MySQL node' and the 'Function node,' and then establish a connection between them. Connect the output of the first MySQL node to the input of the function node responsible for the SELECT query. This will allow you to display data on the dashboard after inserting it.
![Figure 11.14 - Siemens TIA Portal PLC MySQL Google Sheets Data | Node-Red Select Query](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e016acddf2d3dcc87952_-vvq4mX7G8SqQd2VhCG4A9ygeRh5bpUkV7UuXsNjT87oGlj506_XYJlyFWYTSZvPRsxjbZm4quojeJi3_MRYA2BKkvwJ_aXSeXLhk9IND5UeysW7_iIHqBAd9StLF72EKT0sOUz6TQyP3BEwezhEPg.png)
Step 5.5 - Double Click “Function node of select data.”
Step 5.6 - Add Select query
Step 5.7 - Click “Done” then Click “Deploy.”
![Figure 11.15 - Siemens TIA Portal PLC MySQL Google Sheets Data | Node-Red Select Query](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e016051fa172aa620390_aD2mVi9f32QBxjn4hokaqr6-OTlmKFsLD4dqfZBhS31jDDFPNmRfbPvtRzevGWIdxJo_O1gFYN-LpwcA1msrxWj-3eyfTscq4jjB9Xh1TROts6_Wh8b99-mqwvtjuBpFFbrdNO7VxrdABADg2GoFTA.png)
This is the dashboard in the next figure, and you may notice that there is a lot of data being inserted into the MySQL database as we work in Node-RED. The repeating values occur because every time we 'Deploy' our flow, it starts from the beginning and sends three signals to the inserting function node, resulting in three rows being added to the MySQL database. While it is possible to address this issue by adding some lines of code to the function node responsible for inserting data, we won't be doing that in this tutorial. Advanced topics like this can be discussed in future tutorials where we can delve into their details.
![Figure 11.16 - Siemens TIA Portal PLC MySQL Google Sheets Data | Node-Red Dashboard](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e016cd1ec7502057d5d8_CLiVxoT_x1wwt368fswaw_YUMvXDeix7arj6qNkhB-PACtOljMKB0LwfGp3kw6d8zUXhr5u7o6xDbiVAOWunZnnyJYxqx8YmE3ci8UfY9MmRLipQd0TmnVySo2d1b75eOemHQUCBKd0ZrY4YgJRgjQ.png)
![Figure 11.17 - Siemens TIA Portal PLC MySQL Google Sheets Data | Node-Red Dashboard](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e016091706ef3993ae3b_FhUnKMnGR0g03DSIck4uvY-Uut-23Ey3XgcEbHSezDcfo5KILJxhMxSI1EReO0ZVSW4CpZ682b2BnFRkjgfVl4ymDEXsxaf8gwJJ_j2SrKlyJUWA6Yoz5Guoe9YuzpVkqq5YZQEGb9cD1AeGtO4msw.png)
Let’s Create a Delete query to delete all this data.
Step 6 - How to Create Delete query
Add a “button node” to trigger a function node containing a delete query to interact with the MySQL database then connect the output of the function node to the input of MySQL node.
![Figure 11.18 - Siemens TIA Portal PLC MySQL Google Sheets Data | Node-Red Delete Query](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e016bd538012ca5d7ebc_NLf3JfeR2BXi6n3E45HYt3umRv8iQKvfTPPkOFZk2BnlQcybrxqc86f7N7221S4AyUAhu399x2zPABj47IVucEqlv8t9asqLQkSSRlFexntwWxyBrzrBS04t85lFBzoclPkrYNe_DPYZY3rz8e4dkA.png)
![Figure 11.19 - Siemens TIA Portal PLC MySQL Google Sheets Data | Node-Red Delete Function Node](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e016fc226b18d302b445_fNE5f9jQmpnVBUMmL4xJavhpEeuvIt8NPtgo7YqG9nQ9e9N9uTcxm9JvabL0HVUD9PkOvZpjepGF4kKkCv_nZWxYFY0B-X-bxssc40zD7sPuQ5g13AKoOcFVbZsk9px5oO76QIelvJjVd0zu4fcAeA.png)
In the figure above, you can see the code inside the Delete function node. However, as shown in Figure 8.18, the visualization is not optimal. To improve the visualization, let's use “link out” and “link in” nodes.
![Figure 11.20 - Siemens TIA Portal PLC MySQL Google Sheets Data | Node-Red Delete Function Node](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e017bb7bcb93cc456b97_Hf-CDz2ldZ0CzQfbs0vN9sJ5hYqO0c4JQZisWLdeDm3MwuqjzsWQbjQ-IsN8760Q_uVfHUSgS9-_zqBlqrjlKOSbQMwamHhF6Jv3bM5pGx0F8bJKpDZJSuRANqzy_otni4euZ18vdLtKohCdFedwqQ.png)
Now it looks better. Let's click “Deploy” to apply these changes.
![Figure 11.21 - Siemens TIA Portal PLC MySQL Google Sheets Data | Node-Red Dashboard](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e016ac64c9a72c5a8cfe_8JabzUjQ2lQHQ70fLJthtYZRXEEHBVnnGyRNGgnhWaZfXaf-5IRLpfKFItgDdGhanbn1pMSCIXgKYRiD0_v4PdS_-UH5T7INa5WEloJ6FAcmjNgiYYWDFsyiC6bwyif2UjoF3ldTNRfgMVZwxyl-_g.png)
As you can see, after clicking “Delete Data,” all the data has been successfully deleted.
Now, let's explore how to create an Excel sheet to store this data.
Node-RED side – Configurations for Excel
We will need to install an Excel palette.
Step 1 - How to install Excel palette
Step 1.1 – Go to manage palette.
![Figure 12.1 - Siemens TIA Portal PLC MySQL Google Sheets Data | Node-Red](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e0178c508e0a374ec5da_vgGynRVz_FGOaRY7ct2SWI8UC5UZMKG6VI63oONK5nLCioTHTgz_HskF3LDllEkZVGyfet4VDVSV9G5vIYbUBE5C_iqR8Gnff-upV78YMTQN7ZQXQwSci937mkq91sknmwVnD3lkRaCIKsWdtdCpEw.png)
Step 1.2 - Click “install” then Search for palette “node-red-contrib-excel” && Click “install.”
Note: already installed.
![Figure 12.2 - Siemens TIA Portal PLC MySQL Excel Sheets Data | Node-Red Excel Pallete](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e017f54e751c3ae9e49d_8N4BRwCOJ4eL7FHAmfLZxe7BauIVnRPyNHI7BbupEzerV78lO7aD2e3Ep2QSHgs_Tl682OnfSorfeeP6gIOlxBXRtYx9MEAHz_VZNDSZEQnlQPaNMZsouAsPzW8jSng5zaot5W5RjdqSDvObp6ohCQ.png)
Step 2 - How to get Excel node
Step 2.1 - Go to the node list and Search for “Excel.”
Step 2.2 - Grab Excel node to the flow.
![Figure 12.3 - Siemens TIA Portal PLC MySQL Excel Sheets Data | Node-Red Excel Node](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e017bd538012ca5d7f19_oyLtJkwIsLp4w6FTsiE7IQ7dothId2RM9GqDLkp_akWPlcO7vzphiC-5uRbR0IWgz-NFitT4LwNbU-BVSIjXAFUdnvhne4yUetRPsdQMgHnpX_Mly_B_FhpLf1Sv8PSvpSPVsIXNdCOSPei_BUT8Zg.png)
Node-RED side – Programming for Excel
To save Data in Excel sheet we will Make Data Global to use and send to excel node.
Step 1 - How to make Data global
Step 1.1 - Add new function node.
Step 1.2 - Connect function nodes to the output of Template nodes that contain the Data.
![Figure 13.1 - Siemens TIA Portal PLC MySQL Excel Sheets Data | Node-Red Data Global Variable](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e017ba903f1d68fb529f_vYf5FNZvpW2qzTbXKdiUrToFnhFDIZ-xuJUtmS5_o-wE9NI_acYtWbMRFffnftzV4PvvQZx3HltuiWwBCIEVQJvtp0KwHNV7I2sDPb-Z7SIESIbtAMl0e7v71efOCy-za7U0PrT35Z-SqPctfrQeBA.png)
Step 1.3 - Double-click on the Function node to modify its settings && Click “Done.”
![Figure 13.2 - Siemens TIA Portal PLC MySQL Excel Sheets Data | Node-Red Data Global Variable](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e01749b66aba747cb834_PhqOt-9IEoPQrKXdD3LWYUfhMl68OAmxmjm_LZL5LrpY2AOo2MvEpNjnfVvw9hbRpURT4rXhP7HUn4HEce-NGTcHggJhbn7Pv0Jd5da84meq_6ERNgCFEMdpF63EmVvuZdY5ni0eTHUbLs05HcY9Mg.png)
Step 2 - How to send Data to excel node
Step 2.1 - Grab a new “function node” into the Flow and Double click on this new function node.
Step 2.2 - Retrieving Your Global Variable and set to msg.payload then Click “Done.”
![Figure 13.3 - Siemens TIA Portal PLC MySQL Excel Sheets Data | Node-Red Data Global Variable](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e017375f99121077bbb0_aTYmQhxbbawu_IkqxHh1bX2wmA3rXoKcg41ELg3vhvPs5_Tc3zS78kak5Q36ObhknzxOwPjjDHjaU7CY_x9G7TyLUeaxbWTAhOMW5sZ31dFw0SEqXb1iOXwEMJB6QW6q-6v98UwAw43DfNbS0OO7zQ.png)
Step 2.3 – Create a button node to trigger function and connect to excel node.
![Figure 13.4 - Siemens TIA Portal PLC MySQL Excel Sheets Data | Node-Red Excel Node](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e017ba903f1d68fb5336_0C6Y97dAxZ029zTeDwcrql1bkC1MJ5eK_XbOjlmNER__q7ed9rxnXJlKpQiftbbl-A_4-XVYT1-itzCjI323LErGGRII9UXnetx6cN_kWXprWoeqIJ-hk83UwGSt8-a3eVj0ghTj1lEc5XKiS-sLSw.png)
Step 2.4 - Double-click on the excel node to modify its settings.
Step 2.5 - In the 'File' section, specify the path where the Excel sheet will be saved and set its name. then “Done” and “Deploy.”
![Figure 13.5 - Siemens TIA Portal PLC MySQL Excel Sheets Data | Node-Red Excel Node Setting](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e01774270a934298b401_DVfMDsTK1K4jG_mk1b6rDTeNaNPzfgHCwDidgQY4w0Pe_qDvH8xD7uec_yZhDbi7kddIYPAopfo383L3u9XCSPbISQ_LMuPWvNLiduiZbF-UA9NErojcMi4aYKoiltiRqnSASAKJGQZIjiT5r2IsOA.png)
![Figure 13.6 - Siemens TIA Portal PLC MySQL Excel Sheets Data | Node-Red Dashboard](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e017a26c484eeb219004_hN9dpkuHJ2_ZoQ8Gm3goLXEc-MDH00_jb9XX97JH_THZYU4_3S1iHALKiqXZvKJ8EEq7ck45bkLsyRBl1x1sZdH_RaRtPm1Bd3D30lCS1J6WcYWy3_anUVZ9aQ368jntE5zzL_KTWoAemcxlA9WfoQ.png)
![Figure 13.7 - Siemens TIA Portal PLC MySQL Excel Sheets Data | Excel Sheet](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e01785a313008ab0c744_W0yokZTnkFZUubtx0yX75Zewd8ACX1ZkyW8QnHcty2TpQt_sbZv8VEFq76-ptgjxwFMNFxpZ6xUPQtvFvr4UxGgsWp1sUHyGEpIn1Ua_6VVjuOX-0K_xivk4GhqDNxQYC1lGJ7Avb_lYcJ2SnQxc5Q.png)
![Figure 13.8 - Siemens TIA Portal PLC MySQL Excel Sheets Data | Excel Sheet](https://cdn.prod.website-files.com/63dea6cb95e58cb38bb98cbd/6525e0175bc1b66b415f7aef_SHVjIQySvqSJH4rIELRz0xwiJTTyj_hdoBz1yszoPC7irMNuc_0AeCqE2prtjwjU1IBYV48PipKLdEakZ4g9luBPmDi7xOJnW3ijRDEUSsQReWJ0xjTIUQjTg9Xs-opHQqvR_cidX7ygAZ0rt6FwhA.png)
We have successfully configured the Excel sheet. However, it's worth noting that every time we save data to the Excel sheet, it overwrites the same file in the specified path. If you want to create multiple Excel sheets each time you save data in real-time, we can explore this topic in a future tutorial.
System Overview and Project Files
All the necessary files and a video demonstration of the running system are available here.
Conclusion
In this comprehensive tutorial, we explored the powerful capabilities of Node-RED for integrating Programmable Logic Controllers (PLCs) with various data storage solutions, such as MySQL databases and Excel sheets. We learned how to set up MySQL, connect it to Node-RED, and perform essential SQL operations like creating databases, tables, inserting, selecting, updating, and deleting data. Additionally, we created a functional user interface using Node-RED's dashboard feature to visualize and interact with PLC data.
We also dove into the realm of Excel integration, enabling the export of data from PLCs to Excel sheets effortlessly. By making data global and configuring Node-RED to save data to Excel files, we created a streamlined process for data storage and analysis. Throughout the tutorial, we encountered various challenges and learned how to overcome them, such as handling repeated data insertion and optimizing data visualization for better user experience. We demonstrated the step-by-step process, providing clear instructions and visuals to guide readers through each stage of the setup.