Sign In Help
Schneider Electric
HelpSign In
Schneider Electric Exchange
  • Home
  • Collaborate
  • Develop
  • Shop
Home Collaborate Develop Shop Log in or Register Help

Invite a Co-worker

Send a co-worker an invite to the Exchange portal.Just enter their email address and we’ll connect them to register. After joining, they will belong to the same company.
You have entered an invalid email address. Please re-enter the email address.
This co-worker has already been invited to the Exchange portal. Please invite another co-worker.
Please enter email address
Send Invite Cancel

Invitation Sent

Your invitation was sent.Thanks for sharing Exchange with your co-worker.
Send New Invite Close
  • Home
  • Collaborate
  • Exchange Community
  • :
  • Knowledge Center
  • :
  • Building Automation Knowledge Base
  • :
  • Sample PE Program that reads/writes files
Community Menu
  • Forums
    • By Topic
        • EcoStruxure IT
          • EcoStruxure IT forum
        • Industrial Automation
          • Industry Automation and Control Forum
          • Alliance System Integrators Forum
          • Machine Solutions in the Digital Transformation
          • EcoStruxure Automation Expert / IEC 61499 Forum
          • Industrial Edge Computing Forum
          • Level and Pressure Instrumentation Forum
          • Modicon User Group
          • PLC Club Indonesia
          • SEE Automation Club Forum
          • Fabrika ve Makina Otomasyonu Çözümleri
          • Форум по промышленной автоматизации СНГ
        • SCADA & Telemetry Solutions
          • Geo SCADA Expert Forum
          • SCADA and Telemetry Devices Forum
        • Power Distribution IEC
          • Power Distribution and Digital
          • Power Standards & Regulations
          • Paneelbouw & Energie Distributie
          • Eldistribution & Fastighetsautomation
        • Power Distribution Softwares
          • EcoStruxure Power Design Forum
          • SEE Electrical Building+ Forum
          • LayoutFAST User Group Forum
        • Wireless Information Network Solutions
          • Instrument Area Network
          • Remote Monitoring
          • Tank Level Monitoring
          • Remote Data Collection
        • Solutions for your Business
          • Solutions for Food & Beverage Forum
          • Solutions for Healthcare Forum
    • By Segment
        • Food & Beverage
          • Solutions for Food & Beverage Forum
        • Healthcare
          • Solutions for Healthcare Forum
      • EcoStruxure IT
        • EcoStruxure IT forum
      • Industrial Automation
        • Industry Automation and Control Forum
        • Alliance System Integrators Forum
        • Machine Solutions in the Digital Transformation
        • EcoStruxure Automation Expert / IEC 61499 Forum
        • Industrial Edge Computing Forum
        • Level and Pressure Instrumentation Forum
        • Modicon User Group
        • PLC Club Indonesia
        • SEE Automation Club Forum
        • Fabrika ve Makina Otomasyonu Çözümleri
        • Форум по промышленной автоматизации СНГ
      • SCADA & Telemetry Solutions
        • Geo SCADA Expert Forum
        • SCADA and Telemetry Devices Forum
      • Power Distribution IEC
        • Power Distribution and Digital
        • Power Standards & Regulations
        • Paneelbouw & Energie Distributie
        • Eldistribution & Fastighetsautomation
      • Power Distribution Softwares
        • EcoStruxure Power Design Forum
        • SEE Electrical Building+ Forum
        • LayoutFAST User Group Forum
      • Wireless Information Network Solutions
        • Instrument Area Network
        • Remote Monitoring
        • Tank Level Monitoring
        • Remote Data Collection
      • Solutions for your Business
        • Solutions for Food & Beverage Forum
        • Solutions for Healthcare Forum
      • Food & Beverage
        • Solutions for Food & Beverage Forum
      • Healthcare
        • Solutions for Healthcare Forum
  • Blogs
    • By Topic
        • Industrial Automation
          • Industrial Edge Computing Blog
          • Industry 4.0 Blog
          • Industrie du Futur France
        • SCADA & Telemetry Solutions
          • SCADA and Telemetry Blog
        • Power Distribution IEC
          • Power Events & Webinars
          • Power Foundations Blog
        • Power Distribution NEMA
          • NEMA Power Foundations Blog
        • Power Distribution Softwares
          • EcoStruxure Power Design Blog
          • SEE Electrical Building+ Blog
        • Solutions for your Business
          • Solutions for Food & Beverage Blog
          • Solutions for Healthcare Blog
          • Solutions for Retail Blog
        • Community experts & publishers
          • Publishers Community
    • By Segment
        • Food & Beverage
          • Solutions for Food & Beverage Blog
        • Healthcare
          • Solutions for Healthcare Blog
        • Retail
          • Solutions for Retail Blog
      • Industrial Automation
        • Industrial Edge Computing Blog
        • Industry 4.0 Blog
        • Industrie du Futur France
      • SCADA & Telemetry Solutions
        • SCADA and Telemetry Blog
      • Power Distribution IEC
        • Power Events & Webinars
        • Power Foundations Blog
      • Power Distribution NEMA
        • NEMA Power Foundations Blog
      • Power Distribution Softwares
        • EcoStruxure Power Design Blog
        • SEE Electrical Building+ Blog
      • Solutions for your Business
        • Solutions for Food & Beverage Blog
        • Solutions for Healthcare Blog
        • Solutions for Retail Blog
      • Community experts & publishers
        • Publishers Community
      • Food & Beverage
        • Solutions for Food & Beverage Blog
      • Healthcare
        • Solutions for Healthcare Blog
      • Retail
        • Solutions for Retail Blog
  • Ideas
        • Industrial Automation
          • Modicon Ideas & new features
        • SCADA & Telemetry Solutions
          • Geo SCADA Expert Ideas
          • SCADA and Telemetry Devices Ideas
  • Knowledge Center
    • Building Automation Knowledge Base
    • Industrial Automation Knowledge Base
    • Industrial Automation How-to videos
    • SCADA & Telemetry Solutions Knowledge Base
    • Digital E-books
    • Success Stories Corner
    • Power Talks
  • Events & Webinars
    • Innovation Talks
    • Innovation Summit
    • Let's Exchange Series
    • Technology Partners
  • Support
    • Ask Exchange
    • Leaderboard
    • Our Community Guidelines
    • Community User Guide
    • How-To & Best Practices
    • More
Join Now
How can we help?
cancel
Turn on suggestions
Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.
Showing results for 
Show  only  | Search instead for 
Did you mean: 
51290members
Join Now
245505posts
Join Now

Sample PE Program that reads/writes files

Back to Building Automation Knowledge Base
Options
  • Article History
  • Subscribe to RSS Feed
  • Bookmark
  • Subscribe
  • Email to a Friend
  • Printer Friendly Page
  • Report Inappropriate Content
0 Likes
927 Views
Trying to translate this page to your language?
Select your language from the translate dropdown in the upper right. arrow
Translate to: English
  • (Français) French
  • (Deutsche) German
  • (Italiano) Italian
  • (Português) Portuguese
  • (Русский) Russian
  • (Español) Spanish

Sample PE Program that reads/writes files

Picard Product_Support
‎2018-09-11 03:06 PM

Last Updated: Administrator DavidFisher Administrator ‎2019-07-22 08:15 AM

Issue

How to read and write from/to files using PE

Product Line

Andover Continuum

Environment

  • CyberStation
  • Plain English

Cause

Site needed a CSV report of personnel accessing the building that included access event information such as time stamp, door, area, card number BUT also data such as employee number etc., a simple list view could not be used since list views can only show data from ONE table in the ContinuumDB.

Resolution

Sample CyberStation program that reads/writes from/to file and aggregate data from different tables in the ContinuumDB

IMPORTANT:
PE Program is provided as a sample proof of concept ONLY and it is not to be taken as a complete working solution.

REQUIREMENTS:
Create STRINGS ReportEventsPath and T_A_Path in the CyberStation where the program will run and set to the path to the input and output files respectively, the input file must exist, the output file will be automatically created if it doesn’t exist.

PROGRAM CODE:

'This Cyberstation program takes as an input a CSV file generated from an Access Event list
'and creates a second file with the EMPLOYEE NUMBER added.
'Program is FALL-THRU and NOT autostart
'IMPORTANT
'The Input file MUST be formatted like this...
'AccessEvent
'PersonId,TimeStamp,CardNumber,AreaId
'Root\MyPersonnel\Meran_Abe,3/31/2014 10:16:11 PM,3540,Root\MyAreas\Area1

File inputFILE, outputFILE
String 132 DATALINE, RESULT, theEMPLOYEE, empNUMBER, localSTR
Numeric CHARSREAD, CHARSWRITTEN, OK, RECORDLINE
Numeric DEBUG_FLAG

Line INITIALIZE
  DEBUG_FLAG = 0 'SET THIS TO 1 TO HAVE PROGRAM PRINT DEBUG INFO

Line OPENING
  RESULT = ""
  RECORDLINE = 0
  CHARSREAD = 0

  If OpenFile(ReportEventsPath, ReadOnly, inputFILE) = Failure then 'OPEN THE INPUT FILE TO READ FROM
    RESULT = "COULD NOT OPEN inputFILE FILE"
    Goto FAILING
  Endif

  If OpenFile(T_A_Path, WriteOnly, outputFILE) = Failure then 'OPEN THE OUTPUT FILE TO WRITE TO
    RESULT = "COULD NOT OPEN outputFILE FILE"
    Goto FAILING
  Else
    Goto COPYING
  Endif

Line COPYING
  RECORDLINE = RECORDLINE + 1
  If DEBUG_FLAG then Print "Record line = " ; RECORDLINE
  If RECORDLINE = 1 then
    OK = ReadFile(inputFILE, DATALINE, 132, CHARSREAD, "|10") 'READ FIRST LINE FROM THE INPUT FILE UP TO THE LF
  Else
    OK = ReadFile(inputFILE, DATALINE, 132, CHARSREAD, "|13") 'READ ONE LINE FROM THE INPUT FILE UP TO THE CR
  Endif
  If OK = Failure then
    RESULT = "COULD NOT READ FILE"
    Goto FAILING
  Else
    If DEBUG_FLAG then Print "Read..." ; DATALINE
    If OK = Eof then
      RESULT = "END OF FILE"
      Goto CLOSING
    Endif
  Endif

'INSERT THE EMPLOYEE NUMBER
  If RECORDLINE = 2 then empNUMBER = "EmpNumber" 'MODIFY THE HEADER WITH THE NAME OF THE FIELD(S) WE ARE ADDING
  If RECORDLINE > 2 then
    theEMPLOYEE = (left(DATALINE, search(DATALINE, ",")))
    theEMPLOYEE = (left(theEMPLOYEE, (search(theEMPLOYEE, ",") - 1))) 'FOR EACH LINE IN THE INPUT FILE GET THE PATH TO THE PERSONNEL OBJECT
    Print getname(theEMPLOYEE ; " EmpNumber") to empNUMBER 'AND GET THE EMPLOYEE NUMBER
  Endif

'WRITE THE LINE WITH THE ADDED NEW FIELD(S) TO THE OUTPUT FILE
  If RECORDLINE = 1 then
    Print DATALINE ; chr(10) to localSTR
  Else
    Print DATALINE ; "," ; empNUMBER ; chr(10) to localSTR
  Endif
  OK = WriteFile(outputFILE, localSTR, 132, CHARSWRITTEN)
  If OK = Failure then
    RESULT = "COULD NOT WRITE FILE"
    Goto FAILING
  Else
    If DEBUG_FLAG then
      Print "Wrote..." ; localSTR

    Print "CHARSWRITTEN=" ; CHARSWRITTEN
  Endif
'POINT TO THE NEXT LINE IN THE FILES
  If RECORDLINE = 1 then
    If PositionFile(inputFILE, 1, FileCurrent) = Failure then Goto CLOSING 'ADVANCE PAST THE LF
  Else
    If PositionFile(inputFILE, 2, FileCurrent) = Failure then Goto CLOSING 'ADVANCE PAST THE CR and LF
  Endif
  If PositionFile(outputFILE, 0, FileCurrent) = Failure then Goto CLOSING 'WRITE AT THE CURRENT FILE LOCATION
    Goto COPYING 'GO DO THE NEXT LINE
  Endif

Line FAILING 'SOMETHING WENT WRONG
  If DEBUG_FLAG then Print RESULT
  Goto CLOSING

Line CLOSING
'CLOSE THE FILES
  If CloseFile(inputFILE) is Failure then RESULT = "COULD NOT CLOSE FILE"
  If CloseFile(outputFILE) is Failure then RESULT = "COULD NOT CLOSE FILE"
  If DEBUG_FLAG then PEDebug = PEDebug + 1 'IF DEBUGGING INCREMENTED PEDebug MEANS NO ERRORS
  Stop

Line E 'HANDLE RUNTIME ERROR
  If DEBUG_FLAG then
    Print RESULT
    PEDebug = 666
  Endif
  CloseFile(inputFILE)
  CloseFile(outputFILE)
  Stop 

After the program runs if the input file looks like:
'AccessEvent
'PersonId,TimeStamp,CardNumber,AreaId
'Root\MyPersonnel\Meran_Abe,3/31/2014 10:16:11 PM,3540,Root\MyAreas\Area1

The output file will be:
'AccessEvent,
'PersonId,TimeStamp,CardNumber,AreaId,EmpNumber,
'Root\MyPersonnel\Meran_Abe,3/31/2014 10:16:11 PM,3540,Root\MyAreas\Area1,12345

 

Labels (1)
Labels:
  • Andover Continuum
Tags (1)
  • Find more articles tagged with:
  • 16996
Was this article helpful? Yes No
No ratings
Contributors
  • DavidFisher
    DavidFisher
  • AbeMeran
    AbeMeran
  • Product_Support
    Product_Support
Support

Have a question? Please contact us with details, and we will respond.

Contact Us
FAQ

Look through existing questions to find popular answers.

Learn More
About

Want to know more about Exchange and its possibilities?

Learn More

Full access is just steps away!

Join Exchange for FREE and get unlimited access to our global community of experts.

Connect with Peers & Experts

Discuss challenges in energy and automation with 30,000+ experts and peers.

Get Support in Our Knowledge Base

Find answers in 10,000+ support articles to help solve your product and business challenges.

Ask Questions. Give Solutions

Find peer based solutions to your questions. Provide answers for fellow community members!

Register today for FREE

Register Now

Already have an account?Log in

About Us FAQ Terms & Conditions Privacy Notice Change your cookie settings
©2020, Schneider Electric