Search the Community

Showing results for tags 'structured function'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Found 63 results

  1. 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  
  2. 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
  3. 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
  4. 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
  5. 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);  
  6. 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.
  7. 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
  8. 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.
  9. Hi, Could anyone help me out on how to extract the digits present in a string in sysmac studio... Thanks in advance !!!
  10. 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. 
  11. 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.
  12. 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?
  13. 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
  14. 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.
  15. 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.]
  16. 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?  
  17. 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?  
  18. 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?
  19. 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!  
  20. 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!!!!!!!!!
  21. 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
  22. 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!
  23. 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.    
  24. Hello all. I have been working with an SLC 5/04 system, which houses various Digital and Analog INs and OUTs, up to Slot 29. I am currently mainly working with Slot 25, an Analog Input: 1746-NI16I. This is a system which has already been set up and has been running for the best part of 8-10 years. This particular card has had some spare inputs, one of which I am trying to connect to. In the Advanced Configuration, only a few Channels are actually "Enabled", and each channel is pretty much slightly different from another in terms of Input Type, Filter Frequency and Data Format. I am trying to set up Input 14, which is Channel 15, to "Enable" it, 4-20mA Input Type, Filter Frequency of 6 Hz and Data Format of either Raw/Proportional or Engineering Units. Now, after I have made my choices, I click apply, and then OK. I am then confronted by a pop-up which states: "Configuration Rung and Data Integer Data File Number: 25 Integer Data Element: 100 Rung to be inserted: XIC S2:1/15 COP #N25:100 #O0:25.0 24 At Program File Number: 4 82" I have the options of OK or Cancel. If I click OK, I now have LAD 4, Rung 82 Highlighted. This First Scan Bit and COP function were already here, but does that mean I have now altered what is being written to "#O:25.0"? I now Download the Changes. However, after all this, I am not getting any Analog input reading coming in from the Live PLC. What is this COP function? What does it do? How do I properly set up this Analog Card?   Thanks for your time, -Jame
  25. Hello. How can I get bit addressing of defined variable in function block? For example: - I define variable type DUINT with name Double_VarI_INT. - I want to get or set one bit out of it (its double word). - If I use Double_VarI_INT.0 I got error. Best regards.