Search the Community

Showing results for tags 'structured function'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Found 65 results

  1. RSLogix5000 Transfer function Bumpless transfer between two inputs. If criteria or FLAG is true, then transfer from input-1 to input-2 at a prescribed ramp rate, and then release the output to match the selected input without rate restrictions.  Issue: The issue is that upon the status of particular input (FLAG), the control valve demand jumps from 0 to whatever the output of the PID’s Low Select value is (maybe 50% or 80% or other). Request: Ideally, I would like to mimic or replicate the Transfer algorithms provided in other control systems, as described below . The TRANSFER algorithm performs a transfer between the two inputs.  The output is equal to the IN2 input if the digital input FLAG is TRUE, and the IN1 input if the digital input FLAG is FALSE.  The algorithm automatically performs a bumpless transfer between the track input and the selected input when a tracking request is removed.  The algorithm ramps to the selected input (IN1 or IN2) at the specified track ramp rate (TRR1 or TRR2).  Internal tracking may be selected to allow a bumpless transfer between IN1 and the IN2 inputs.  Individual track ramp rates may be initialized to ramp from the IN1 to the IN2 and from the IN2 to the IN1. Attached is RSLogix5000 program "transfer.acd" Thanks.
  2. Allen bradley Micro850

    Hello, I am new to automation and I do a project with a Micro850 Plc. I am more comfortable with logic block so I write my program in Function Block langage on Connected Component Workbench software version 12. I would like to make flashing a light but I don't know wich block to use and how to program it ... Could you help me. Thank you
  3. Hello, In past i was using Siemens S7 300 and Simatic 5.3. So a long time ago. I restart look back to plc because i need to monitor the temperature of my heating system. So bought a plc that is a IEC61131-3 standard and  OpenPCS as Develop software.  So i begin to play with OpenPCS because  Im very rusty.  SO i create a function, that i named FC_TEST . When i compile the below code i get an error E: S5004: Function blocks instances are invalid in 'FUNCTION'-POUs, STRUCTs, and in ARRAYs.  It seams that Timer block inside the function FC_TEST are not allowed, i understood right ? (*  --------- DECLARATION  ---------  *) VAR_INPUT T_1 : TIME ; (*Declare T_1 as a Time Input ==> Set the Time of Timer *) START : BOOL; (*Declare START ad BOOL Input ==> Start The Time of the TIMER *) END_VAR VAR MY_TON : TON; (*Instantiate MY_TON as Timer type TON*)  END_VAR (*  --------- FC PROGRAM  ---------  *) MY_TON(IN := START , PT := T_1 ); FC_TEST := MY_TON.Q;   (*  --------- CALL THE FC---------  *) tmp2 := FC_TEST(T#2s, I0_0);  (* I0_0 is a input*) Thanks  Marco  
  4. Hello Folks... The pictures show it all... I just need to produce a one-shot inside the IF...THEN, and the Oneshot's input bit goes from 0 to 1 as you see from the trend, but the output bit is not going to 1, or giving a pulse ? can anyone help me understand why i am not getting a pulse in this code ? And is there another easy way to get pulse inside IF...THEN without changing the condition which activates the if loop ? Thanks in advance for your time
  5. Flip flop in structured text

    Hi all i've been trying to make a simple timer in structured text which is turned on and off by a single input, all instances of flip flops i have found seem to be 2 input. any help or examples would be appreciated example of programs; Pulse signal received, start timer Pulse signal received stop timer
  6. Timers and Structured Text

    Hello group. I am practicing ST programming and am doing this by converting an existing Ladder Logic program into Structured Text. I have created the following attachment and I can see my BOOL objects change state when I touch the respective buttons on my HMI.  The issue I am having is the Accumulating Timer will not start timing when the conditions are met. Can someone with experience in ST advise me what I am missing or doing wrong. Thanks
  7. I'm working on simple structured text program which takes in DWORD values, does some math on them and then outputs in DWORD type. What data type should I be using and how can I make this work?  This is one of the lines from the code(everything DWORD) and I get 'operator not supported by DWORD data type' XPos3 := XPos1 + (2*XIncrement);  
  8. I'm using simple function block, one input and one output, like in this example: Problem I have is how to call function block and use inverted (NOT) value , ie instead 5.01 I need to use NOT (5.01) . Of course I could create new symbols that are inverted values of actual inputs but i'm trying to avoid that, number of addresses is significant.
  9. To calculate a walking or moving average I want to use WSFT and SUM in a function block. Does anybody have experience with this? The idea is to take a 1 hour average of a proces value and store this average value each hour. The software then have to calculate the walking or moving average over say 4 hours or 12 hours with a maxium of 24 hours. See attached files with logic but then not in a function block     Walking_AVG.cxp Walking_AVG.opt Walking_AVG.bak
  10. I can debug my plc app with simulator. I created some function block, and inside functionblock I can inspect in and out parameters, as well as local variables. But in/out parameters values are not shown. Any solution? Im using Sysmac Studio 1.29.2 and selected a NX PLC in my project.
  11. Hi, Could anyone help me out on how to extract the digits present in a string in sysmac studio... Thanks in advance !!!
  12. Function Block addressing

    Hello all.  I have a program which has 8 function blocks. I recently added extra functionality to one of the programs (not the function blocks). I added the new variables to the global symbols table and added the new code, but when I compiled the new code, the variable addresses in three of the function blocks had changed. This is a problem, because we use memory cassettes to download new versions of code, so when the new version is downloaded to a machine in some far flung part of the world, these variables will be overwritten (they are hours run variable, so are important for servicing purposes).   My understanding is that CX assign's variable addresses in Function Blocks and we have no control over this. Bit if I only added variables to the Global symbol table, why are the FB addresses affected??   Any input appreciated. 
  13. Hi, I can’t find an answer to the following and I was advised to ask it here.I’m programming an Omron CJ2M with an MD212 high speed I/O card. I usually do all my programming in Structured text, simply because I like it a lot over ladder or sft.Now, if I want to read the hight speed counter (incremental encoder), I have to make a ladder section and use the PRV instruction to store the present value in a chosen location.The manual says the current PV is stored in A271, but I can’t get a readout there. Apparently the only way to read it is through this instruction.Does anyone know if there is an equivalent to the PRV instruction for Structured text? or another way perhaps? Again, when I check the actual memory adress, there’s no value there withouth the use of the PRV instr.
  14. Q03UDVCPU

    I am new with PLC's and I am learning how to work with GX Works 2. I have two questions, 1st Question: Using a Q series PLC (Q03UDVCPU) Is it possible to convert the language of a project from ladder logic to structured text? 2nd Question: If I read a project from a PLC why is it always ladder logic? Is there any way to read out structured text?
  15. Hallo.  Can someone shed some light on how much memory st takes ? does it use more that traditional ladder? i find that a routine with a couple of thousands of lines uses over 500kB is there any tricks to lower the usage? Or is it just what it is, and buy bigger cpu’s
  16. Hi everyone, Using Cicode programming ... I'm try to make a function empressed Button's input command that still running forever until the user press the Button again .. so if i press the Button at first the function inside Button will be running , But i wonder to terminate that function by press same button second time or don't mind if you suppose other Button for stop running the function ... plz help to make a code or something else to stop running of my function.
  17. Pointer Device memory

    To those who don't know the GX Works2 compiler treats any function block referenced used in your code as a place to copy the entire set of code data into your program. Function block calls are not handled like pointers even though the should be. [You'll consume all your pointer space by thinking function blocks are great.]
  18. Hi, I'm new to both structured text and Modicon. I'm having trouble compiling this tiny procedure, meant to scale a number to an integer when the operator changes it. Although I can set the page edit variable to @localparameters.iLTemp_SPt1 with no problems, I can't get this function to compile as either a local or global procedure. What am I doing wrong?  
  19. Hey, I recently started trying my hand at creating function blocks. At the moment I'm trying to create a PID function block, however I keep getting this error: "ERROR: Variable does not have enough size." No idea why it does this. Can anyone help?  
  20. Internal function block variables

    I have a function block where the first internal variable is showing as address H1420 in the Global Symbol table. When I add another retained variable to the function block then save and compile the code, the variable address in the global symbol table shifts from H1420 to H1488.  I need to retain the address as I will be downloading code and I need to ensure the address if H1420 stays with that variable.    Can anyone help with this?
  21. GX Work2 Comments in Arrays

    I am very new to the Mitsubishi PLC world (I have a lot of experience with A/B and Omron though).  I am having an issue trying to assign comments to an array of Globally scoped bits - I am also using Structured Ladder - NOT simple ladder.  Is it possible to do this?  I have contacted there tech support group and they were of little help.  I don't care if I update the label comment or the device comment, I just want to assign a simple comment that can be displayed (i.e. I am using this for step sequences).   Any help would be greatly appreciated!  
  22. Omron Function Block variables

    Hello all.  I posted earlier in the week regarding downloading new code to an Omron PLC, but I think the question was a bit vague. As a follow up, and hopefully to clarify, I have the following query. I have created an upgraded program which will be downloaded by field techs using memory cassettes. The revised area of code is essentially a Function Block which amends service lamp behaviour, and in creating it, I have amended the existing function block and added new Internal variables. Is there any way I can ensure that the new variables don''t over write or move the existing  variables in the PLC, because this is what is happening when I download it.    HELP!!!!!!!!!
  23. hello.   I've been trying to communicate this omron plc CP1L-EM30DT1-D, with a yaskawa inverter cimr-vu4a0004faa. but i can't figure out how to make de correct mov or configuration in de DM. i need to run/stop, change frequency.    some help, please. :) 485PRUEBA.cxp 485PRUEBA.opt
  24. Hi. This regards ventilation. A room has two air inlet dampers (pretty much like a big air valve in a ventilation duct). Only one is used at a time to regulate temperature in the room, and the other is then closed. When switching the inlet of air from one damper to another; i have not decided what method to use yet. I consider splitting the regulator output in two and let the one damper ramp down to this value, and the other ramp up.  When these values are reached one ramps up to the full regulator output and the other to zero. Not quite sure this is the best solution, and the code is not written yet :) Anyone done anything similar or has suggestions? Cheers!
  25. Hello:   I need to link  a lot of variables, pointing to CIO address, like "AT" field, but is a large volume of tags to create, so, I have a chance to assign a memory location to a variable in ST like:  my_tag := %100;  (trying to assign tag address to CIO 100) ? If not, there is a method to import tags from a Excel ?   Thanks.