Jump to content

Emil

Members
  • Posts

    455
  • Joined

  • Last visited

  • Days Won

    10

Posts posted by Emil

  1. Which model of contgroller you're using?

    Can you try Autotune - on fixed Setpoint - recommended the higher one (end of Ramp) or 10% lower. I'll recommend using Autotune of the controller itself.

    It's very useful to make logs with PID server. Then, you can post them for our review or send ot support@unitronics.com.

    If you're using Vision controllers, I'll recommend ot add in Ladder the module "Read Contgrol components"- with coeficient 100. This will give you CVp, CVi and CVd, where CV = CVp + CVi + CVd.

  2. Let's say you will define 5 x blocks UniCAN Send. Each blck will have its own struct module, which will close requested data to a vector of 16 MI.

    Having in the second unit the bit "message received", you will activate all 5 Struct modules to "open" te data to requested registers. In this logtic, maybe you wil l"open" the same vector more than once. I don't see any problem on that, as the vector comes from communication and it wil not change until the next data received.

  3. Hi Zbig,

    We are checking the problem with export ot Excel. Meantime I have a "crazy" idea:

    You can make a data table with row for each tank. The column properties will be "address of". You will set there theq addresses of the real operands for relevant tank. Then, in Ladder, you wil make a subroutine, which wil lhold "tank logic" - with "temporary operands". You will make a loop - reading real data for relevant tank to "temporary operands" > run the logic to proceed them > write results from temporary operands to relevant tank.Then you will increase the pointer and will go to te next tank. This way with one sub and one DT you will complete your application.

  4. H Sean,

    Can you point me where you found "write system timers"? I searched in the documetn, but didn't fins such command.

    In general, I think you need to start from opposite side. You just need to know which kind of informaiton you want to transfer in your communication and then to search where this information is located and how to transfer it. Knowing that, it will be much easier to point you to the right source of information and to provide you with the relevant help.

  5. You can send many messages "at a time". UnuCAN send is not synchronised with scan time. There is a buffer of 16 messages x 16 MI each. In fact, there are two buffers x 16 messages each - for low priority and high priority.

    In your case - you can send messages untill the buffer is not full (see relevant SI - it needs to be less than 16!). Every time "Message recewived" bit rise, you will extract all messages expected. This can lead to extract twice the same message, which in this case doesn't seem to me critical.

  6. Hi Vidmas,

    PID output CV = CVp + CVi + CVd (Proportional + Integral + derivative components of Control Value). Vision gives the option to read these components. You need to set FB PID module "Read Control components". As PID calculations are performed on 32 bit base, the original numbers are quite big and usually not easy for understanding and plot with PID server. That's why in left side you can set Divider. According to my experience, the best value to set there is 100, but other values can be set too.

    Read Control Components needs to be activated with continious condition. It can be located on Main Routine and connected direct to the left line.

    The values on right of the module will give you CVp, CVi and CVd. Then, in PID server, you will set the addresses of mentioned MI and will get trends of these 3 components, which will give you closer look on what happens inside PID.

    Yes, the address of the 32 MI vector must be the same.

  7. PID parameters are unique for each system. Finding "manually" these parameters takes time even to quite experienced PID user.

    Autotune procedure performs few On-Off cycles. The number of these cycles (1-3) is set in the module.

    How this operates:

    At the beginning, the controller set CV to max.

    Comming ot setpoint, it switches CV to 0%.

    After PV falling to SP minus some hysteresis, it starts the next On-Off cycle.

    During this process, PV makes "waves" of overshoot and undershoot around setpoint. These waves are unique for each system. The controller learns these waves and according to their parameters - length, amplitude, asimetric... calculate the best PID parameters.

    How long it will take?

    This depends on specific PID system and number of cycles chosen. In some systems it can take less than 5 seconds per cycle, in others - more than 5 hours!

    Activate Autotune has any sense only in a real closed loop system, on real working conditions.

    Activating Autotune "on the desk" and trying to simulate On-Off process - turning some potentiometer in the simulator or moving temperature sensor from glass with hot water to glass with cold water can show if the logic works at all, but PID parameters, calculated this wy have nothing common with those one, neded for the real system to run properly!

  8. Both functional blocks are exactly the same! Same algorithm, same functions!

    FB PID Autotune has, in addition to PID, the "module" Autotune", which is missing in FB PID.

    Why?

    Functional blocks take memory, dedicated for them. In standard Vision models - V120/230/260/280/290/530, this meory is 8 kbytes. FB PID Autotune takes more memory than the "lighter" FB PID (without the module Autotune). Having two FB gives the option to the user to manage better the memory, dedicated to FB.

    In enhanced Vision models - V130/350/570, the memory, dedicated to FB is 4 times more. In practical level, it's more than enough to manage any project and I didn't heard someone to come to its limit. That's why there is no need ot hold two different FB PID. As Autotune is independent block, which can be or cannot be implemented in the program, there is no any reason, out of memory limit, to hold two different FB.

×
×
  • Create New...