Jump to content

Robin P

  • Posts

  • Joined

  • Last visited

Recent Profile Visitors

3,181 profile views

Robin P's Achievements

Advanced Member

Advanced Member (3/4)



  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. I have also noticed the sluggish response of the 1.30.58 editor, not present in earlier versions, when editing HMI screens. It can take a couple of seconds to acknowledge a mouse action.
  3. 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.
  4. 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
  5. 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.
  6. It is my experience that if you make any change to the struct from which you generate the CSV file append, you must delete all 3 files of that name on the SD before the PLC can write again to it.
  7. 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.
  8. 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
  9. I have a similar problem in loading UniLogic 1.18.41 on my laptop. Was there a successful resolution to Ruey Shin's problem? Regards - Robin Proctor
  10. 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
  11. 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
  12. On copying a function block, if the source code was effectively what was copied then could not its recompilation in the modified DT environment regenerate the internal addressing? Regards Robin Proctor
  • Create New...