Jump to content

Robin P

Members
  • Posts

    36
  • Joined

  • Last visited

Posts posted by Robin P

  1. I would use the analog output value, set in your program, as the PID's Control Value; and take as its Process Value whatever measurement you are using to determine the effect of the pump, and its relation to the Set Point (also defined in your program).

    Regards

    Robin

  2. Instead of writing your results to a CSV file, have you thought of writing them to a networked database (e.g. MySQL or SQL Server). The target database table would have the same column structure as your data table, and can be made available to any networked user. Unilogic has inbuilt SQL handling, which replaces the CSV file writing process, and for end users Excel has add-ons for connecting to such databases. We do this successfully in a laboratory Unistream application.

  3. On upgrading my Unilogic program with compiler version 1.29.111, it now reports this error: 'The TCP Remote slave limit of 64 operations has be (sic) reached. (136)' The program previously compiled successfully with compiler version 1.29.26 and .34.

    I have 11 ModBus Remote Slaves on separate IP addresses, with 10 of which I request a single 64-register transfer, and the eleventh two 32-bit register transfers.

    If I remove all the Slaves and associated code, then the program compiles. If I then reinstate them it now compiles successfully!

    I have several versions of my program in development, chasing different operational problems. Do I have to repeat this procedure for each of them in order to use this latest compiler?

    Regards

    Robin Proctor

  4. You could create a data table with a row for each sensor, and columns for current and stored values, and sensitivity criteria. You then write a loop to process the table at some suitable frequency, reading into the table the current value from the sensor and performing the same comparison calculation each time, but with custom values for each sensor. You can implement loops in ladder code using the Jump to Region function.

  5. I have successfully used Export Structs to get an XLS spreadsheet, shuffled its rows (fields) using Excel's Cut and Insert Cut Cells, then used Import Structs to overwrite the original struct.

    I recommend saving a copy of the file beforehand, and not attempting to add, remove or rename any fields from Excel. I did indulge in some renaming which imported OK, but got a Delegate Error on recompiling - which spells death to the ULPR I think. Renaming struct fields seems fine if done within Unilogic.

  6. Hello Ofir.

    I have a client system using a PID loop for temperature control. To investigate a separate problem (as in D Green's recent FTP post) I would like to download and run a new, different, temporary project; and subsequently restore the original. I believe however this will destroy the original retained PID AT settings, which I would like to restore, possibly from a file, to avoid having to run the (lengthy) PID Autotune again.

    Is it possible save the PID AT params to a file on the SD card, as it is with any user-defined structure using a data table?

    Thanks

    Robin

  7. I am installing a UniStream PLC system on a client site, and wish to set up internal access to the PLC and its data files for users on the local network. The client IT administrator would like, for security reasons, some technical information on the PLC before being willing to connect it to his network. I quote his request:

    - What interests me particularly at this point are the following:

    - Technical details about the underlying operating system (you mentioned Unix?) and its version.

    - The server side (= on the Unitronics device) implementation of VNC and FTP and any other TCP/IP protocols that are implemented.

    I cannot find such detail on the Unitronics website. Do you have, or have links to,  any information that might be relevant to his enquiry?

    Regards

    Robin Proctor

  8. I need some of my timers to resume from their last Current value following a system reset (which can happen following a software upgrade). If I just retain them they simply re-initialise.

    I think I can achieve this as follows:
    1) Set the timer T to Retained. This just affects the Preset value.
    2) In the main scan regularly store a copy of T.Current into a retained tag TC.
    3) On the Ladder Initial Cycle (which happens following reset):
                   3.1) Store T.Preset into a temporary location TP
                   3.2) Store TC into T.Preset
                   3.3) Reset timer T. It's Preset and Current values are both now equal to TC
                   3.4) Store TP into T.Preset.

    Timer T is now running with its Current value at TC and its Preset at TP, which is where they were prior to reset.
    In my (limited) testing so far, this works for Reset, Reboot and Power Off.


    Robin Proctor

  9. I have a number of HMI screens in my program, which feature a 'Back' button to enable return to a parent screen. The action of this button is 'Last screen', which works fine except:

     

    If I have the PLC system - a Unistream 10" - at one of these screens during program development, and I download a new version of my program to the PLC, the program restarts at the screen previously left off at, but the Back button no longer has any effect. I now have means of returning to the parent screen, other than a system reboot. Could not the download process simply cause a restart at the Home screen?

     

    Regards

  10. I have two questions regarding REAL data displayed in a Numeric Box:

     

    1) I wish to display a REAL data tag in a Numeric Box on the HMI. I get a warning tag unless I make the box very wide, far wider than is needed to display the number. Can I suppress this warning?

     

    2) The documentation implies I can linearise the data in the box, effectively changing the displayed units. The VisiLogic equivalent numeric box has inbuilt optional linearisation, but I cannot find this in the Unilogic numeric box. There is a Linearize ladder function, but using this is going to add complexity to the ladder, particularly when I want the user to be able to use the box for data entry.

     

    Regards

     

    Robin Proctor 

  11. In Unilogic the Data Tables menu offers Upload Data Table files from PLC. In fact this enables browsing and uploading of the zipped CSV files which is what the client typically needs, and delivers them to the client's PC. Unfortunately the client must install and run Unilogic on their PC, and then click on Data Tables in the Solution Explorer to gain access to the Data Tables menu. This seems unnecessarily complex: could that menu item or program function be made available to the client more simply?

     

    Also I have found the COM.FTP ladder functions which may offer another route by enabling the PLC to act as an FTP server, but I don't know how to do this.

     

    Regards

     

    Robin Proctor

  12. Further to my original post, I have now revised my understanding of the Load DTI to File function status tag. I guess that this function runs as a separate thread to the main program scan, and posts a 1 in the status tag until it completes, when it finally posts a non-1 value (hopefully 0). On reading a 1 in this tag the ladder logic should be set to do nothing further on this scan, but to repeat the read on the next scan.

     

    Am I correct in this interpretation?

     

    Regards

     

    Robin Proctor

  13. As I understand it, the Saragani pseudocode above refers to 'Status' which is the stored output of a call on the 'Load DTI ...' function. This value can only be changed by a subsequent call on this function.

     

    If Status were ever to be set to a value of 1 - 'Function in progress' - then no more calls could be made on the 'Load DTI ...' function.

     

    Is the only way to use this status to repeatedly call the function until it returns a value of 0 indicating success?

     

    Regards

     

    Robin Proctor

  14. I would like the HMI user to monitor Trends from up to 100 similar input feeds - these are gas flow rates. I obviously have to define 100 Feeds, but if I were to put them all in the one Sampler and link the Trend graph to that Sampler then the user would have to step one-by-one through these Feeds to get to the one of interest, which is tedious. If I define a number of Samplers, each covering a different subset of the Feeds, then it seems I have to create for each of these a separate HMI screen each with a Trend widget linked to a different Sampler. Maintenance of such a set of HMI screens, keeping them alike, now becomes laborious.

     

    Is it possible to programmatically switch the Sampler or the Feeds associated with a Trend widget? If it were, then we could enable the user could do this via a single HMI to access the Trend of interest.

     

    Regards

     

    Robin Proctor

×
×
  • Create New...