Changes for page 05 Lua Script

Last modified by Hunter on 2026/10/23 11:34

From version 34.1
edited by Hunter
on 2026/10/23 11:34
Change comment: There is no comment for this version
To version 12.1
edited by Joe
on 2026/05/21 13:49
Change comment: There is no comment for this version

Summary

Details

Page properties
Author
... ... @@ -1,1 +1,1 @@
1 -XWiki.Hunter
1 +XWiki.joe
Content
... ... @@ -726,180 +726,5 @@
726 726  
727 727  = 29 Graphics Drawing =
728 728  
729 -This demo shows how to draw static graphics, such as a snowflake and a star, on the HMI screen using Lua custom object.
730 -The drawing coordinate data can come from HMI internal registers or external PLC registers.
731 -This demo does not demonstrate dynamic path updates or motion animation. For dynamic trajectory visualization, refer to the [[Lua curve>>doc:PIStudio.09 Lua Editor.Lua Script.WebHome||anchor="HCurveDrawing28Experimental29"]].
732 -
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.
733 733  [[Download link>>https://ftp.we-con.com.cn/Download/WIKI/PI%20HMI/Demo/Lua%20Script/Graphics%20Drawing.pi2]]
734 -
735 -
736 -= 30 Timestamp =
737 -
738 -This example shows how to obtain second-level and millisecond-level timestamps.
739 -[[Download link>>https://ftp.we-con.com.cn/Download/WIKI/PI%20HMI/Demo/Lua%20Script/Timestamp.zip]]
740 -
741 -
742 -= 31 Sending CSV file with Gmail =
743 -
744 -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.
745 -[[Download link>>https://ftp.we-con.com.cn/Download/WIKI/PI%20HMI/Demo/Lua%20Script/Sending%20CSV%20file%20with%20Gmail.zip]]
746 -
747 -
748 -= 32 GPS Function =
749 -
750 -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.
751 -
752 -[[Download link>>https://ftp.we-con.com.cn/Download/WIKI/PI%20HMI/Demo/Lua%20Script/GPS%20function.zip]]
753 -
754 -
755 -= **33 Data record query** =
756 -
757 -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.
758 -[[Download link>>https://ftp.we-con.com.cn/Download/WIKI/PI%20HMI/Demo/Lua%20Script/Data%20record%20query.zip]]
759 -
760 -
761 -= 34 Ethernet A4 Printer =
762 -
763 -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]]
764 -
765 -{{warning}}
766 -Please prioritize printers that support **PCL5**.
767 -{{/warning}}
768 -
769 -**Common PCL5 Commands**
770 -
771 -{{code language="lua"}}
772 ---Set text position and content
773 -local sample = "\x1B*p1000x1000YHelloWorld"
774 -{{/code}}
775 -
776 -{{code language="lua"}}
777 --- Set font size to 12 pt
778 -local fontSize = "\x1B(s12V"
779 -{{/code}}
780 -
781 -{{code language="lua"}}
782 --- Set print direction to 0 degrees
783 -local direction = "\x1B&a0P"
784 -{{/code}}
785 -
786 -{{code language="lua"}}
787 ---Restore default drawing logic
788 -local defaultLogic = "\x1B*l252O"
789 -{{/code}}
790 -
791 -{{code language="lua"}}
792 ---New page feed output
793 -local formFeed = "\x0C"
794 -{{/code}}
795 -
796 -[[Download link>>https://ftp.we-con.com.cn/Download/WIKI/PI%20HMI/Demo/Lua%20Script/PrinterTCPSocket.zip]]
797 -
798 -= 35 SFTP Client(PI 11.4) =
799 -
800 -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.**
801 -
802 -{{info}}
803 -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]]
804 -
805 -**Make sure TCP port 22 is not occupied by another SSH server, such as Bitvise SSH Server.**
806 -{{/info}}
807 -
808 -~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.
809 -
810 -{{code language="powershell"}}
811 -Get-Service sshd
812 -Start-Service sshd
813 -{{/code}}
814 -
815 -(% style="text-align:center" %)
816 -[[image:checkstatusSSH.png]]
817 -
818 -{{info}}
819 -If the SSH connection cannot be established, check and adjust the firewall’s inbound and outbound rules. Enter following command in powershell
820 -{{/info}}
821 -
822 -{{code language="powershell"}}
823 -netsh advfirewall set allprofiles state off
824 -{{/code}}
825 -
826 -2. Change the server IP, username and password.
827 -
828 -(% style="text-align:center" %)
829 -[[image:SSH1.png]]
830 -
831 -2. Change the server file path and HMI file path as user wanted.
832 -
833 -(% style="text-align:center" %)
834 -[[image:E2.png]]
835 -
836 -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.
837 -
838 -{{warning}}
839 -File operations are only supported under the "user:" path for the moment.
840 -{{/warning}}
841 -
842 -(% style="text-align:center" %)
843 -[[image:sf.png]]
844 -
845 -4. Check the file whether download or upload successfully.
846 -
847 -(% style="text-align:center" %)
848 -[[image:8217Wc3rju.png]]
849 -
850 -[[Download link>>https://ftp.we-con.com.cn/Download/WIKI/PI%20HMI/Demo/Lua%20Script/SFTP%20Client.zip]]
851 -
852 -= 36 Wechat Official Account Notification Push =
853 -
854 -This example shows how to set up the Wechat official account sandbox to test the alarm push.
855 -
856 -[[Wechat Official Platform Sandbox>>https://mp.weixin.qq.com/debug/cgi-bin/sandboxinfo?action=showinfo&t=sandbox/index]]
857 -
858 -To register a formal WeChat Official Account, please forward to:
859 -
860 -[[Weixin Official Accounts Platform>>url:https://mp.weixin.qq.com/]]
861 -
862 -~1. Login into the platform, and user can see the appID and appSecret, copy them for the further use.
863 -
864 -(% style="text-align:center" %)
865 -[[image:wechataccount.png]]
866 -
867 -2. User can scan the QR code on the left side to subscribe push notifications. And copy the Wechat ID.
868 -
869 -(% style="text-align:center" %)
870 -[[image:wechatID.png]]
871 -
872 -3. Click [Add test template] to create a new notification template.
873 -
874 -(% style="text-align:center" %)
875 -[[image:wechatTempalte.png]]
876 -
877 -4. Enter the title and content, then click submission, the content must follow this format: text: ~{~{text.DATA}}
878 -
879 -For example, use Alarm: ~{~{Alarm.DATA}}. For multiple lines, format the content as follows:
880 -
881 -{{code language="lua"}}
882 -Device: {{Device.DATA}}
883 -Alarm: {{Alarm.DATA}}
884 -Time: {{Time.DATA}}
885 -{{/code}}
886 -
887 -(% style="text-align:center" %)
888 -[[image:wechatTempalteConten2.png]]
889 -
890 -5. After the template is created, copy the template ID.
891 -
892 -(% style="text-align:center" %)
893 -[[image:wechatCopyTempalte.png]]
894 -
895 -6. Paste all these IDs(appID, appSecret, wechatID and templateID) into the lua script.
896 -
897 -(% style="text-align:center" %)
898 -[[image:wechatscriptcopyID.png]]
899 -
900 -7. Trigger the alarm condition, and user will receive an alarm notification from the WeChat Official Account.
901 -
902 -(% style="text-align:center" %)
903 -[[image:WechatResultResize.jpg]]
904 -
905 -[[Download link>>https://ftp.we-con.com.cn/Download/WIKI/PI%20HMI/Demo/Lua%20Script/WechatAlarmPushNotify.zip]]
1792547572135-677.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Hunter
Size
... ... @@ -1,1 +1,0 @@
1 -41.0 KB
Content
8217Wc3rju.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Hunter
Size
... ... @@ -1,1 +1,0 @@
1 -50.8 KB
Content
E2.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Hunter
Size
... ... @@ -1,1 +1,0 @@
1 -154.6 KB
Content
EYGRzMYrhy.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Hunter
Size
... ... @@ -1,1 +1,0 @@
1 -171.9 KB
Content
SSH1.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Hunter
Size
... ... @@ -1,1 +1,0 @@
1 -190.6 KB
Content
WechatResult.jpg
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Hunter
Size
... ... @@ -1,1 +1,0 @@
1 -163.7 KB
Content
WechatResultResize.jpg
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Hunter
Size
... ... @@ -1,1 +1,0 @@
1 -29.8 KB
Content
checkstatusSSH.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Hunter
Size
... ... @@ -1,1 +1,0 @@
1 -15.5 KB
Content
sf.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Hunter
Size
... ... @@ -1,1 +1,0 @@
1 -298.4 KB
Content
wechatCopyTempalte.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Hunter
Size
... ... @@ -1,1 +1,0 @@
1 -22.9 KB
Content
wechatID.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Hunter
Size
... ... @@ -1,1 +1,0 @@
1 -41.0 KB
Content
wechatTempalte.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Hunter
Size
... ... @@ -1,1 +1,0 @@
1 -23.1 KB
Content
wechatTempalteConten.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Hunter
Size
... ... @@ -1,1 +1,0 @@
1 -46.9 KB
Content
wechatTempalteConten2.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Hunter
Size
... ... @@ -1,1 +1,0 @@
1 -48.4 KB
Content
wechataccount.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Hunter
Size
... ... @@ -1,1 +1,0 @@
1 -70.4 KB
Content
wechatscriptcopyID.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Hunter
Size
... ... @@ -1,1 +1,0 @@
1 -245.5 KB
Content