Jump to content

Emil

Members
  • Posts

    455
  • Joined

  • Last visited

  • Days Won

    10

Everything posted by Emil

  1. 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.
  2. You did the conroller Master, trying to read inputs from ... SCADA? Net 3 is not neded. You need to check the topic "Modbus Slave address table" and to set relevant address for input in SCADA.
  3. Hi Chris, Why you desided, that you can transfer only 25 bits?! I just transfered 250...
  4. Simple idea - use function "Bit to NUM" (VisiLogic - vector menu) to copy your bit vector to MI or so. Then - I guess you know the way...
  5. Hi, Below is a copy on my correspondence with someone with the same question. I hope ti will be useful. Thank you for giving me so interesting and detailed information. You’re right in both your suggestions: • PID Config module must be activated with one scan condition, but needs to be located in subroutine, which is scanned always. The short meaning of this definition is – put PID Config module in Main routine and activate it with SB2. • If one of the conditions of the conditions, stated above is not proper, PID will not operate properly or will not operate at all! I have some experience with such systems and maybe can give you some valuable advices. • First of all – there is an option to set PID “bumplessâ€. This means you can make “reverse engineering†– calculating and forcing Integral error, you can take as input CV and force PID to output this value. There is a very nice, detailed example with this option in VisiLogic > Help menu > Examples > Version 681 > Project examples > PID. This way seems to me more elegant and effective than dynamically changing CV (which technically is possible, as we already discussed). Could you give me some specific documentation about the internal calculus of Integral and derivative CV component? If I want to force the Integral value to 0 when I launch the "PID Run" what value I've to put in the ML to force in the Integral value? It seems an obvius question but if I forse with 0 at the start of PID run, the initial CV became negative olso if the PErr is closed to 0. I cannot give you details about PID algorithm – it’s company propriety. Integral error is reset when you start PID and when you enter in PB. You don’t need to reset it additionally. If you want to keep it, you can use module “Pauseâ€. • To perform acceleration/deceleration – I’ll offer you to make dynamic Setpoint. Then, PV will follow it. You can use Linearization module. In mentioned Examples > > PIFD folder you can find demo application for Ram and Soak. Despite it’s for controlled Heating, the principle is the same and I recommend it to you. If you've had a look at the bench sketch, you understand that I can't have a dynamic set point (for my system the SP has to be olways that who guarantee the horizontal position of the "dancer"). Otherwise I'm not sure to have understood in the right way your advice. This is the reason I start and stop the bench using a ramp. You’re right – my mistake. So you need to increase slowly the speed in one side and PID will take care to keep the speed in the other one, following the input from the dancer. About the best parameters of your system: As you know, the parameters of each PID systems are unique. We have a very nice tool for view and log PID process – PID server. You can find it VisiLogic > Tools menu or from Start > Programs > Unitronics > Tools. If you will need my help with setting best PID parameters, please activate PID server, take a log of the process and send it to me. In such case, I highly recomme3nd to add FB PID module “Read control componentsâ€. You can put it in main routine, direct to left line – without visible condition. Coefficient in left – you can set it to 100 (on the documentation about FB's this is called "resolution factor" and the description is: "This is the value used to factor the PID control values"; I think that this description is too few to understand in the right way what it is) The values within PID are calculated as 32 bit. This makes these values quite big and difficult to operate (which you found by yourself). That’s why the factor divides these values to make them easy visible in PID server. and on right side you have 3 components of CV (CV = CVp + CVi + CVd). This will give us additional information what happens inside PID and will help us improving the process. I've had a look at CVp, CVi, CVd using resolution factor = 1 but these values were very strange; the CVp was coherent but the CVi was very "high". The CVd was 0 because D factor was at 0. If you can give me more documentation about this topic I'll apreciate it. I already recommended factor = 100, which in most of the applications gives best ratio accuracy/visualization. In some applications factor = 10 or 1000 can feed better in PID server compared with other values. Anyway – this function is for view only and has no any affect on PID performance. It’s up to you which factor to set. About your specific PID questions: • PID calculations are performed only within Proportional band. If the process is ‘heating†type, for example, below Pb CV=100% and above Pb CV=0% for me this means that PID action is MAX below Pb and MIN above Pb [CV = CV high limit below, CV = CV low limit above], but in the FB's documentation is written, below or above Pb "NO PID Action" -> CV always =0 for me. “No PID action†means, that no PID calculations are performed. CV becomes a constant and is not updated in any way from FB PID, which is inactive in this case. • Proportional error Ep is linear function of the PV within Pb. For example – on the low border of Pb (“Heating†type control) Ep = 100% and respectively CVp = 100%. At Setpoint Ep=0 and CVp=0%. At the middle of Pb Ep and respectively CVp will be 50%. • When you set different Pb, in the same PV and SP CVp, calculated in this specific point, will be different [OK]. As I already mentioned, CV = CVp + CVi + CVd. So, CV in some moment will be different too.
  6. I think you need ot ask your local Unitronics vendor for another unit to perform the task you describe. I hope they will give you one for some limited period of time.
  7. As MJ20-PRG receives power from other device via cable, you need ot connect it to 9 pin RS232 port of PC and to use 6 wire cable, which comes with the module. In the attached slave application you can see the port settings. You can see them after download the application in Info mode > System menu > Communication settings. When you connect U90Ladder, it sends special "break" signal and sinchronize the port temporary with U90Ladder. After about 1 minute there is no PCOM traffic, Jazz OS returns the communication to predefined parameters and Modbus protocol.
  8. Hi Frosty, V570 in fact has no I/O. It needs to be some Snap In module. Which? Are you set it in PNP or in NPN mode? How you give the frequency? Please note - HSO/PTO in Snap In modules of V570 runs with 0.1 Hz resoluiton. This means - if you want to output 100 Hz, you need ot give number 1000. Attached is a simple demo, which links HSO to HSC and enables precise (0.01Hz) measurement of the frequency, outputted by HSO. Frequency-precise meter.vlp
  9. Emil

    PLC Name?

    In Case you didn't do it, and cannot change the project, the default PLC name is the unique number of the contgroller. You can find it in Normal series controllers in SDW9. In enhanced models, you can see PLC name direct in Info menu.
  10. It's more than "easy". For a person, which already has some expereince, this procedure takes less than one munite. I guess takeing a look on relevant Help files and examples to see the way will take about 3-5 minutes for a newbee.
  11. You just need to give different ID numbers of A & B OPLC - let's say ID1 and ID2. Then, from PC via VisiLogic (good for test), Remote access, Remote operator or your SCADA you can access both units via their ID addresses, when one unit is connected to PC (RS232/485 or Ethernet) and both units are connected via CANbus. PCOM over CAN is running in parallel with UniCAN. In your SCADA tiy will need to use OPC Server.
  12. Sorry, We were on National Holidays. Yes, you can change hte limits in dynamic way. Despite PID Config module is activated with one scan condition, it's scanned all the time. Of course, it must be located in a subroutine, which is scanned all the time - recommended in Main Routine! Why you want to change CV? In general, it's related to hardware. What is the idea? What is your system?
  13. The funciton "Rotate" is supported only by classical Vision models - V120/230/260/280/290/530. You can find it when you right click on a HMI object. Enhanced Vision models doesn't support "Rotaste" option. We will improve the Help topic, additng this information.
  14. VsisiLogic V8.60 or higher > Project menu > Convert Project to Color option...
  15. Hi, First - as Simon already stated, theoretically it's possible to manage AT commands via FB Protocol. It even seems not so difficult task. But, in practical level, it can take days, even weeks of works and testing - in case you have very good support from modem's side! If the modem is not one fo Unitronics supported, but for any reasons you want to use it in many (hundreds!?!)projects, maybe it worth the efforts. In this case I recommend you to write your code in a special, "standard" subroutine and then to import it in each new project. In any case using one of suppoted modems with standard COM Init and FB GPRS is much easier! Simon - when GPRS connection is established, you can perform FB Protocol or FB Modbus config and then to have relevant protocol running on already opened communication pipe.
  16. Hi Frank, HSC (High Speed Counter) in Vision series OPLC has two independent funcitons - counting pulses and giving their frequency. In Hardware Configuration of the project, after defining HSC function (in your case as "High Speed Counter") and setting a register to count pulses, when you click on the second line, you will be prompted to define a second register (MI) to get the frequency in Hz. The next step will be to convert thye pulses to some Engineering Units, for example Gallons per Minute (GPM). The best way to do so is using the function Linearization (VisiLogic > Math Menu). There, in your case you need ot set X1=0 and X2=19840 pulses, while Y1=0 and Y2=100 Gallons per second. The input X will be the register fro frequency you set in HWC and the output can be linked as PV (input) to your PID loop. According to expected range, you will need to define Min and Max limits for PV. As CV, you need to set any MI and define the limits to 0 and 4095 (12 bit analog output). CV register can be linked direct in Hardware configuration (HWC) to analog output. There are a several working examples in VisiLogic > Help menu > Examples > Version 860 > Project examples > PID folder. Please review them. Please let me know if something still remains unclear and we can help you further.
  17. Do you have only one controller? Is the connection RS232? If so, you can use Adds On module MJ20-PRG. You need to set the controller as Modbus Slave (see atttached demo) and your SCADA as Modbus master. Then, you need ot refer to Help topic Modbus > Slave address table for Modbus addresses of the operands in Jazz you ned ot use in your SCADA to access them. If you want ot network few controllers in RS485 network to PC, you cannot use MJ20-PRG. You need ot use JZ-RS4 RS232/485 port. If this is the case, let me know and I'll send you relevant demo. Modbus Slave Jazz RS232 EM.U90
  18. Yes, in general it is. Please describe more detailed your need. Do you want the PC to be Master and to exchange information with 4 PLC? What is the software you are planning to use in PC?
  19. Hi Vectrex, I want to start a step earlier - how the controller works? When powered, it: 1. First check the status of inputs. Update hte memory, related to each input. 2. Execute the program - from left to right, from top to bottom. If it finds contact of an input, it checks the status of the memory, related to this input. If there is a digital output as result of a rung, it updates the relevatn to this output memory. 3. When finish executing the program, PLC updates the status of the outputs according to the relevant memory. 4. After finishing the update of the outputs, it starts a new scan. Based on this information - having Normal contacts as conditions and normal coil as result, each time the controller will come to this rung in the program, it will check the status of condition contacts and acording to this status - true or false - will update the condition. This condition will remain unchanged until the next scan (in case there is only one coil in the program, which is highly recommended!!!). The question you posted has very simple soluiton in Ladder language and Ash already gave it. About Power Up value: Think, at the beginning of your program, you write a rung, like N.O. contact of SB2 (active only the first scan after power up) = Set or Reset coil of the MB you want to give a Power Up value. As result this bit will have requested value. Then, in your program, you can change its state. If I'll take your example - if you give to MB4 power up value Reset, at the beginning of the scan its value will be 0. Then, comming to the rung Ash shown to you, according to the values of MB1, 2 and 3 it will be updated with a new value. I hope this makes sense to you.
  20. SL20 - in V570 gives the scan time in units of 250 ns. In V130 and V350 - in units of 200 ns. In standard Vision models it's not supported. Small tip - you can measure execution time of any part of your program via the function Interval. You can find it in VisiLogic > Utilities > Debug. It's described in Help topic On Line Test Mode.
  21. Decimal point is part of MF register. It's displayed on its place!
  22. Hi Damian, The last official version is 8.6.1. It's posted in our site. Please point me where you find info about V8.6.3. I guess it's typing error, but I want to chech and react accordingly.
  23. Thank you! Will wait for more details... It's important for me.
  24. Small note: In VisiLogic > Help menu > Examples > Version 861 > Functio examples there is working, very simple, well explained example for each of these funcitons. Maybe this can be helpful too? If not, let us know and we will improve these examples, of if they are not relevant, we will wipe them out!
  25. Hi Mike, I want to investigate this problem deeper. Can yo ugive me more info: S/N of the controller? OS within the contgroller? BinLib and Boot versions? When the display is going black - what happens with the congtroller itself? Can you check the value of SI9? Especially when the display is black? How often it's going black? How you return it to life?
×
×
  • Create New...