Jump to content

zed

Members
  • Posts

    27
  • Joined

  • Last visited

Posts posted by zed

  1. @Flex727 Well now that's odd.  I'm using Unilogic version 1.33.373 which is the latest, last I checked and when i "update help file" it tells me that it is up to date.

    Here's my help file page:  No "2"....

     From your sheet 1,2,3 would seem to indicate the current number of autotune cycles which makes sense but I can also say that in my case autotune was not in progress at the time. Something is fishy.  I'll have to keep watch.

    image.png.91ee39be27062d8a6deb0c00c0dc62f4.png

  2. @kratmel, In my system AT does not produce the same results for coefficients nor would I expect them to given my system.  Its a heat exchanger system with a fairly long residence time and the application is in the food industry cooling various types of sauces used in meals all of which have different specific heat capacities, densities and flow rates.  I don't incorporate any sort of feed forward control for flow changes however in a given day flows are relatively consistent.  I find that being careful to tune for a laminar flow with a medium to high flow rate sku works adequately for all skus.  Not perfect but very hard to expect perfection with this application.

    I do have some products where the capacity of the cooling system is not enough to cool to the setpoint and as such the output will be at 100% most of the day.  I guess i'm expecting that when the run PID block is disabled, any windup or saturation would be cleared.  Maybe i need to reset this manually (using logic) at the leading or trailing edge of Run PID?  Oddly, in the frozen at 100% case above, the Integral error was zero,  which I think indicates there was no windup present?

    @Flex727 I also have the status integer displayed.  Problem is it shows "2" for which there is no definition in the help file.  Also during the freeze event I was able to go online and confirm that the Run PID block was indeed enabled.

  3. Hello,,

    I'm using a 3 wire RTD as an input which has a range of -200C to 850C.  The integer value is x10 (1 decimal place) so for example 20C would be an integer of 200.  Should the Input limits be set to -200 to 850 or -2000 to 8500?

    What is the effect and proper way of setting sample time?  

    In the config struct there is a STATUS tag.  The help file decodes all the numeric values but my status tag indicates "2" which does not have a definition in the help file.  There is a -2 but not a 2.  So what does 2 mean?

    Is there a formula for the Cp, Ci, Cd influences?  Just noticing the tags for each do not seem to add up to the CV.  Also wondering the impact to control for the integral setting.  For example if the integral is 5 seconds, what would be the impact if changing that to 10 seconds?  To 2 seconds? I guess that's why i'm asking if there is a formula because that would give me the answers.  I can of course google it but it depends on how the manufacturer applies it.  Proportional band vs. proportional gain or integral time vs integral rate.  

     

    Lastly,  I had a PID loop freeze up on me and i have no idea why.  Its been in service for about a week working fine.  Then after the weekend it would not respond and was stuck at 100% output even though the the PV was well below the SV (cooling application).  Cp, Ci, and Cd values were not changing.  Integral error was zero (no wind up).  The only way i recovered control it was to run the AT again.  very odd, just wondering if anyone has encountered the same.

     

    Thanks

  4. Yep. When switching it to V2 in uniapps it will just detect the the version is not the same as the project on the next download.  You can select to overwrite it or not but the path you show above Joe is how to set the project to V2 thus it will stay that way.   I found it and went to post it here but you beat me to it.  :) 

    On a related manner with the same behavior, you can find screen saver settings for the project in the solution explorer,  Hardware config/ Controller Model.  You can also set these in uniapps but then it won't match the project  on the next download.  

  5. Upon compile I get a warning:

    Modbus v1.0 (Legacy) is used in the application. It is recommended to switch to Modbus v2.0

    How do I make the switch?  I began the project in an older version and created 4 Modbus slaves and later installed the latest Unilogic version.  

    Would I just need to delete the existing slaves and create new ones?  

    Thanks

  6. Hello,

    I've been using this router with a Unistream PLC for some time now.  Its a headless PLC so i'm just using any tablet with VNC as a remote HMI connecting to the router's LAN wifi.   The router isolates the machine's internal network and connects to the building wifi network for access to the internet and a SQL database.  The PLC has a wired connection to the LAN side of the router.  The Router is set as a Modbus TCP client and the PLC polls it every 10 sec to verify it has obtained a WAN IP address.  There is no cellular or sim card function.

    Three issues present. 

    1. During development phase I had no issues with WIFI signal strength and connection to the tablet even though the router and its antenna are inside a stainless enclosure.  After placing it in production i would constantly get signal drop outs.  The signal strength does fade it just drops out completely and on the tablet I have to wait for the wifi signal to come back and then reconnect the VNC.  Sometimes by the time i get reconnected the signal would drop out again.  I think its just due to the noisy (electrical noise) environment.   I relocated the antenna outside the box and there was considerable improvement but I am still getting signal drop outs.  Is a mobile machine in a washdown food manufacturing environment.  

    2.  Every second modbus com to the router fails with an error number of -11.  Even so, it does what I need it to do but  that error code is funny and it kinda bugs me and I wonder if it might be related to the signal drop outs.

    3. In unilogic there is a "router init" block.  I'm not sure what its purpose is as there is no help topic on it but I think I would only need to use that if I were using sms messaging or cellular features

     

    I have updated the firmware on the router but that did not make any difference.  I have not updated to the latest unilogc version yet as did not see any related items in the release notes that might help.

    Any insight or tips would be appreciated.

    Thank you in advance.

     

  7. Hello fellow UL fans,

    I'm looking for some help or an example for using the TCP Rx ladder function.  I have a sense of how to trigger COM Rx for a serial connection by looking for an ASCII  control character such as CR or LF but not sure how to do this for a TCP Rx since the system struct for TCP client is different (snip below) than the USB serial struct.  The help file contains very little on the subject and I was not able to find anything on the forum and my comms experience is rather limited.

    I'm also wondering how the TCP Connect ladder function should be executed.  Should that be triggered only once (edge trigger or set in/reset out) and await connection or should it be triggered continuously until a connection is established?

    In my application the PLC is the TCP Client and the TCP server is a checker weigher which will send individual pack weights as they pass over its load cell in the form of <STX>341.6<ETX><cr><lf> where 341.6 is weight in grams. Packs are weighed at various speeds from 30 to 120 per minute.

    Kind regards,

     

    image.thumb.png.f8e898f617005f163d75774a692e43ea.png

  8. Hi Weert,

    Just FYI, I'm no expert, I just saw your post when searching for answers on something similar and thought i'd try to help.  I would recommend setting the Router to modbus TCP slave.  In unilogic modbus is handled a couple different ways and the manual does a decent job of explaining it.  I would recommend setting the PLC up as a modbus TCP master and using the periodic function.  You could use aperiodic, which is controlled by PLC logic, depends on how often you want to obtain the data from the router.  Aperiodic is good for immediate reads or writes but you'll have to set up a pole timer in your logic if you have more than one aperiodic trigger so that there is at least 50ms between them.  In the periodic table set under in the read/write registers tab fill in the required fields. Don't use read/write multiple as the UCR does not support this.  Assign tags to the data you are trying to obtain and ensure the data type matches what is in the router (typically 16bit INT).  You can specify an array if you want to read more than one register so long as the addresses you want are in sequential order.  The UCR manual has a section explaining the modbus register addresses for all the different data points.  Enter the starting address and if you are using an array it will read the next addresses for the length of the array.  There is a maximum read length (i think its 16 registers) so of you are reading more than that just add another periodic row and start where you left off with another array.  If you are just trying to read a few scattered data points then set up a row for each one separately instead of using an array. If you are trying to control the UCR over modbus you will need to "write" to the registers.  You should also check that the UCR supports that command (I'm not sure because i only needed to read) .  Use ladder logic to control the content of the tags.

    I've done this with unilogic PLC and UCR B4.  I'm just reading a few registers every second or so.  My issue, that i was originally searching for an answer for, is that every second comm would fail with modbus error 11 which seems to be specific to routers.  I'm not sure why its doing that.  Everthing works i just get my data every second read.  Its just something i want to eventually figure out for my own sanity.

    Cheers

  9. Issue resolved though i'm not exactly sure how :)

    In case it may help others, i loaded the file from SD into the unilogic then downloaded the table values to the PLC.  This way i could attempt to save the DTI to file without overwriting it with zeros.  went online and forced the test bit.  Save worked.  Load did not.  Changed file name so there were no spaces.  Saved worked, load did not.  Changed the start and length settings to 0 and 150 from 1 and 149.  Load worked.

    I not sure why the start and length would have mattered or its more likely i have the sequence mixed up and removing the spaces in the file name is what did the trick.  Problem is likely 2FBK.

     

     

  10. Hello,  I'm having some trouble loading a DTI from file.  I get a -5 status (Read File Error).  The table is 150 rows.  The file name tag value was "Recipe Master Table" but when i looked at the files on the SD card in the DT folder the file name was "Recipe_Master_Table" so I changed the tag to that but still get -5 error.  Thinking it was file name related I tried different iterations like "DT/Recipe Master Table" or "DT/Recipe_Master_Table.udtf" , etc but still get -5 error.

    For a bit of background, I load the DTI from SQL using a query.  If that fails for some reason i load it from the SD card which was saved to the SD card after the last successful query. The SQL logic all works fine but when i purposely disconnect from SQL to test this function thats when i discovered the -5.

    I check the file on the SD card by using the utility to convert it to excel.  File seems fine.  All the data is there.

    Anyone have any ideas on what may cause a file read error?

    Thanks

     

    image.thumb.png.eb94387966a868d7aab34a486f36b9f1.png

  11. Hello,

    The file browser widget seems to be identical the SD file browser found in the memory section of uniapps.  There is button on the top right to eject the DOK/USB.  This functions as expected in Uniapps and a pop-up appears with the typical "safe to remove" message and any files from the DOK  that were visible in the right side pane disappear.  With the HMI widget this button does not appear to function.  It is enabled (not greyed out) but pressing it does nothing.  Files from DOK still show in the right pane, no pop up, etc.  If the DOK is removed it does result in a disk error and when inserted in a computer one is prompted to "attempt to repair the drive".  

    I installed the latest software/firmware/OS and retested but same result.  I'm not in need of any help on this I just thought I should post it since I could not find anything related already on the forum.  My apologies if this is not the appropriate place to post potential bugs.

    By the way, I have just completed my first project on this platform controlling a 3rd party position indexing servo using modbus TCP and i am absolutely loving this product. Outstanding.

    I have one suggestion for consideration:  When selecting multiple items on the HMI design screen it would be nice if the properties window showed all properties that were common between all things selected.  That way one could adjust a color or a tag, text size, font or element size dimension, position, etc of all of them all at once rather than having to edit each one individually.   

  12. Hello,

    I am considering a 2kW single axis application using unistream PLC and unitronics drive and servo motor.  In this application is there any distinct advantage to ECAT over the native CANopen?  The ECAT is an add on module but both support the use of motion function blocks in the PLC, correct?  Does the drive support either protocol natively or are they different drive models?  Any other differences that would lead me to chose using the extra ECAT module?  Is the main difference really just comm speed?

    Edit:  Found the answer to the drive protocol question in the manual.  Different models depending on protocol ECAT/CANopen.  Also noticed the drives do not seem to have a STO (safe torque off) function and control power must be applied before mains.

    Thanks,

  13. hello,

    i was under the impression that the ecat module would allow control of third party drives using the built in motion code (MC_...) but it seems when I load the ESI file I have access to drive parameters with SDO read/write but no way to actually control it.  I can't seem to add the drive or its related axis to the hardware configuration or program motion logic for it.  I am missing something?  Does the built in motion code only work for unitronics servo drives and motors?

     

    Thanks

  14. Thanks Joe.  In this case all three conveyors would be egeared to the virtual master axis except when making a position adjustment.  Yes PE's for each conveyor.   I don't need the distance between PE's as the position adjustments are all independent and within a cycle.  The master axis would provide the cycle repeat (12" pitch) by either a z/z' output on the encoder or a prox detecting downstream flights.  So how would one set this up?  I don't see an egear feature in the motion tools and i'm not sure how to set the encoder up as a virtual axis.  Maybe this is more of a software question and i've posted in the wrong spot?

    Some examples https://www.nerconconveyors.com/Nercon/Conveyor/Conveyor-Equipment/Diverters-Mergers/Servo-Technology.htm 

  15. Here is an application in which I'm unsure I will be able to do with unistream.  Its a servo smart belt infeed.  3 short conveyor belts in series receive incoming products and index them to the proper position for a downstream cartoner machine's flighted infeed conveyor.  The three belts need to match the speed of the cartoner which i would do by mounting an encoder to the downstream cartoner and feeding that signal to the a high speed quadrature input on the unistream.  The three conveyor servos would be e-geared to this "master" axis.  From there when a product is detected on the first belt by a photo eye its position is compared to the master and a corrective relative move (advance or retard) is superimposed on the current velocity.  The second and third conveyors repeat the process to achieve the required position with increasing precision.

    I would use the new ecat module and third party servo drives and stainless washdown servo motors.

    Do you think this is feasible and if so how would you configure the egear to the encoder?

     

    Thanks

     

     

  16. Would be very handy to have a eye dropper color sampler tool like in MS paint where you can set the color of an object by clicking on any other visible object on the screen.  Useful for matching colors of logo's etc.  Currently you have to copy paste or type in the hex code for a color.  There is a way to copy (paint) format from one element to others by right clicking but that paints all formatting attributes, not just color.

     

    Cheers

×
×
  • Create New...