Changes for page 05 Lua Script

Last modified by Hunter on 2026/10/14 19:50

From version 1.2
edited by Mukhammad Muhyidin
on 2025/10/02 16:46
Change comment: There is no comment for this version
To version 26.1
edited by Hunter
on 2026/10/14 19:50
Change comment: There is no comment for this version

Summary

Details

Page properties
Author
... ... @@ -1,1 +1,1 @@
1 -XWiki.Muhyidin23
1 +XWiki.Hunter
Content
... ... @@ -48,29 +48,32 @@
48 48  (% style="text-align:center" %)
49 49  [[image:dZyxVCtWDz.png]]
50 50  
51 -~1. About how to set up the FTP server in Windows PC: **[[Build an FTP Site on IIS>>https://docs.microsoft.com/en-us/iis/publish/using-the-ftp-service/scenario-build-an-ftp-site-on-iis]] **,** [[How to set up and manage an FTP server on Windows 10>>https://www.windowscentral.com/how-set-and-manage-ftp-server-windows-10]]**
51 +(% class="box infomessage" %)
52 +(((
53 +Note:About how to set up the FTP server in Windows PC: **[[How to set up and manage an FTP server on Windows 10>>https://www.windowscentral.com/how-set-and-manage-ftp-server-windows-10]]**
54 +)))
52 52  
53 -2. Enter PC (FTP Server) IP address and port number (Default 21).
56 +1.Enter PC (FTP Server) IP address and port number (Default 21).
54 54  
55 55  (% style="text-align:center" %)
56 56  [[image:LuaFTPDemoIP&Port.png]]
57 57  
58 -3. Change the filename of the file that needs to be uploaded. If run on as Offline Simulator, the simulate upload path of "udisk:1.png" will be "C:\WECON\USB\1.png" on the PC.
61 +2.Change the filename of the file that needs to be uploaded. If run on as Offline Simulator, the simulate upload path of "udisk:1.png" will be "C:\WECON\USB\1.png" on the PC.
59 59  
60 60  (% style="text-align:center" %)
61 61  [[image:LuaFTPDemoUpload.png]]
62 62  
63 -4. Change drive letter of file save path according to drop-down list (There are three option available: Flash, UDisk and SDCard).
66 +3.Change drive letter of file save path according to drop-down list (There are three option available: Flash, UDisk and SDCard).
64 64  
65 65  (% style="text-align:center" %)
66 66  [[image:LuaFTPDemoDropBox.png]]
67 67  
68 -5. Change the filename of the file that needs to be downloaded from PC(Server).
71 +4.Change the filename of the file that needs to be downloaded from PC(Server).
69 69  
70 70  (% style="text-align:center" %)
71 71  [[image:LuaFTPDemoDownload.png]]
72 72  
73 -6. Set the default configuration in file "Script_BG.lua"
76 +5.Set the default configuration in file "Script_BG.lua"
74 74  
75 75  (% style="text-align:center" %)
76 76  [[image:LuaFTPDemoInitial.png]]
... ... @@ -123,6 +123,9 @@
123 123  
124 124  [[Download link>>https://ftp.we-con.com.cn/Download/WIKI/PI%20HMI/Demo/Lua%20Script/Telegram.zip]]
125 125  
129 +
130 +[[URL Encode Table for Special Characters>>https://docs.we-con.com.cn/bin/view/PIStudio/FAQ/Why%20can't%20I%20receive%20HMI%20messages%20on%20Telegram]]
131 +
126 126  = 9** LINE Notify(Not available now)** =
127 127  
128 128  This example shows how to use the LINE Notify to send message into LINE group. When monitoring bit "@B_HDX0.0" changes, it will trigger and send the message. Please replace with your own Token.
... ... @@ -695,3 +695,147 @@
695 695  
696 696  (% style="text-align:center" %)
697 697  [[image:xT8f08pfY0.png]]
704 +
705 += 26 Send attachment picture with SMTP by Gmail =
706 +
707 +The project is to send mail message with text and attachment picture called test.png.
708 +
709 +[[Download link>>https://ftp.we-con.com.cn/Download/WIKI/PI%20HMI/Demo/Lua%20Script/SMTP%20for%20Gmail%28with%20Attachment%20picture%20%29.zip]]
710 +
711 += 27 TTS function =
712 +
713 +The project is to show a Music Player and alarm sound with TTS function in Lua script. Please note that  use PI version 10.4 or higher to open the project.
714 +
715 +[[Download link>>https://ftp.we-con.com.cn/Download/WIKI/PI%20HMI/Demo/Lua%20Script/Music%20player.pi2]]
716 +
717 += 28 Google Sheets API =
718 +
719 +The example shows how to send the data into the Google sheets API via Lua script. [[Jump to Video>>https://youtu.be/VKjr3_MVNzc]]
720 +
721 +{{warning}}
722 +since the HMI lacks a built-in library for cryptographic signatures (RS256/JWT), user can automate this by sending the token to the HMI via external communication. Token need to be manual input in this project.
723 +{{/warning}}
724 +
725 +[[Download link>>https://ftp.we-con.com.cn/Download/WIKI/PI%20HMI/Demo/Lua%20Script/GoogleSheet.zip]]
726 +
727 += 29 Graphics Drawing =
728 +
729 +The example shows drawing a snow and a star on the HMI screen with drawing function from Lua Script.Please note that  use PI version 10.6 or higher to open the project.
730 +[[Download link>>https://ftp.we-con.com.cn/Download/WIKI/PI%20HMI/Demo/Lua%20Script/Graphics%20Drawing.pi2]]
731 +
732 +
733 += 30 Timestamp =
734 +
735 +This example shows how to obtain second-level and millisecond-level timestamps.
736 +[[Download link>>https://ftp.we-con.com.cn/Download/WIKI/PI%20HMI/Demo/Lua%20Script/Timestamp.zip]]
737 +
738 +
739 += 31 Sending CSV file with Gmail =
740 +
741 +This example shows how to send CSV file transferred by DB file with Gmail. Please note that  use PI version 10.6 or higher to open the project.
742 +[[Download link>>https://ftp.we-con.com.cn/Download/WIKI/PI%20HMI/Demo/Lua%20Script/Sending%20CSV%20file%20with%20Gmail.zip]]
743 +
744 +
745 += 32 GPS Function =
746 +
747 +This example shows how to get the GPS data from device (Support RH-AG). Please note that  use PI version 11.4.64.26081301 or higher to open the project.
748 +
749 +[[Download link>>https://ftp.we-con.com.cn/Download/WIKI/PI%20HMI/Demo/Lua%20Script/GPS%20function.zip]]
750 +
751 +
752 += **33 Data record query** =
753 +
754 +This example shows how to obtain data records for a certain time period and display them at an address. Please note that  use PI version 10.6.45.26070101 or higher to open the project.
755 +[[Download link>>https://ftp.we-con.com.cn/Download/WIKI/PI%20HMI/Demo/Lua%20Script/Data%20record%20query.zip]]
756 +
757 +
758 += 34 Ethernet A4 Printer =
759 +
760 +This example shows how to print A4 report paper directly from an HMI via TCP/IP, which is not required any PC software tool. [[Jump to Video>>https://youtu.be/IZoOoRefJc8]]
761 +
762 +{{warning}}
763 +Please prioritize printers that support **PCL5**.
764 +{{/warning}}
765 +
766 +**Common PCL5 Commands**
767 +
768 +{{code language="lua"}}
769 +--Set text position and content
770 +local sample = "\x1B*p1000x1000YHelloWorld"
771 +{{/code}}
772 +
773 +{{code language="lua"}}
774 +-- Set font size to 12 pt
775 +local fontSize = "\x1B(s12V"
776 +{{/code}}
777 +
778 +{{code language="lua"}}
779 +-- Set print direction to 0 degrees
780 +local direction = "\x1B&a0P"
781 +{{/code}}
782 +
783 +{{code language="lua"}}
784 +--Restore default drawing logic
785 +local defaultLogic = "\x1B*l252O"
786 +{{/code}}
787 +
788 +{{code language="lua"}}
789 +--New page feed output
790 +local formFeed = "\x0C"
791 +{{/code}}
792 +
793 +[[Download link>>https://ftp.we-con.com.cn/Download/WIKI/PI%20HMI/Demo/Lua%20Script/PrinterTCPSocket.zip]]
794 +
795 += 35 SFTP Client(PI 11.4) =
796 +
797 +This example shows how to set up the SSH connection between HMI and server, and upload or download the file. **This function only works on PIStudio version 11.4 or above and PI8000ig or PI9000ig HMI.**
798 +
799 +{{info}}
800 +Refer to the Microsoft official guide for installing and enabling OpenSSH Server on Windows using PowerShell: [[Get started with OpenSSH Server for Windows ~| Microsoft Learn>>https://learn.microsoft.com/en-us/windows-server/administration/openssh/openssh_install_firstuse?tabs=gui&pivots=windows-server-2025]]
801 +
802 +**Make sure TCP port 22 is not occupied by another SSH server, such as Bitvise SSH Server.**
803 +{{/info}}
804 +
805 +~1. Run PowerShell as administrator. Enter Get-Service sshd in the PowerShell window. If the status is Stopped, enter Start-Service sshd to start the service.
806 +
807 +{{code language="powershell"}}
808 +Get-Service sshd
809 +Start-Service sshd
810 +{{/code}}
811 +
812 +(% style="text-align:center" %)
813 +[[image:checkstatusSSH.png]]
814 +
815 +{{info}}
816 +If the SSH connection cannot be established, check and adjust the firewall’s inbound and outbound rules. Enter following command in powershell
817 +{{/info}}
818 +
819 +{{code language="powershell"}}
820 +netsh advfirewall set allprofiles state off
821 +{{/code}}
822 +
823 +2. Change the server IP, username and password.
824 +
825 +(% style="text-align:center" %)
826 +[[image:SSH1.png]]
827 +
828 +2. Change the server file path and HMI file path as user wanted.
829 +
830 +(% style="text-align:center" %)
831 +[[image:E2.png]]
832 +
833 +3. Click the Copy to copy the file into flash(user:) path from the pen drive path, then click SFTP connect, click Upload or Download button.
834 +
835 +{{warning}}
836 +File operations are only supported under the "user:" path for the moment.
837 +{{/warning}}
838 +
839 +(% style="text-align:center" %)
840 +[[image:sf.png]]
841 +
842 +4. Check the file whether download or upload successfully.
843 +
844 +(% style="text-align:center" %)
845 +[[image:8217Wc3rju.png]]
846 +
847 +[[Download link>>https://ftp.we-con.com.cn/Download/WIKI/PI%20HMI/Demo/Lua%20Script/SFTP%20Client.zip]]
8217Wc3rju.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Hunter
Size
... ... @@ -1,0 +1,1 @@
1 +50.8 KB
Content
E2.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Hunter
Size
... ... @@ -1,0 +1,1 @@
1 +154.6 KB
Content
EYGRzMYrhy.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Hunter
Size
... ... @@ -1,0 +1,1 @@
1 +171.9 KB
Content
SSH1.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Hunter
Size
... ... @@ -1,0 +1,1 @@
1 +190.6 KB
Content
checkstatusSSH.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Hunter
Size
... ... @@ -1,0 +1,1 @@
1 +15.5 KB
Content
sf.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Hunter
Size
... ... @@ -1,0 +1,1 @@
1 +298.4 KB
Content