Search the Community

Showing results for tags 'function block enable bit ladder logic missing'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Found 129 results

  1. PLC Programming Language

    Hello everyone, I am new to PLC programming and will start working on Allen Bradley PLC. I have an experience in computer programming languages. Will learning ladder logic be a better option or starting with structured text as i have some knowledge about the syntax and programming of structured text?
  2. Problem failed to start ladder engine

    Hello my brother and sister at this forum, please help me, my problem is after i make ladder diagram and iam click button simulation -> Work online simulator ( CTRL + SHIFT + W ) then appear warning  "failed to start ladder engine", what a problem?? thanks before
  3. Hello!   I have a humidity sensor 0-10v and his measurepoints is for 10 to 90 humidity %. Using the Analog Amplifier, I set his measure range but theres a problem... he's only givin me integers numbers, and I need the decimal one's to. On the Analog Amplifier, with that range the program says that the gain on the measure is 0.08 for each number on the analog input, theres a way to see that decimal places? I tried increasing the measure range to 100-900 and set the decimal case to 1 but the gain turns to 0.8, with that I just can take jump number like 10.8->11.6->12.4. How can i do this on the way that I need? It's an LOGO 8! After setting measurement range from 100 to 900:
  4. So I have a plc program where most of the outputs are based on a counter that goes from 0 to 1000. The counter speed is adjustable and is generally set to run through a full cycle (count from 0 to 1000) anywhere between 0.5 to 2 seconds. The problem is, when I try to energize an output by using an EQU instruction, it will almost always skip the count because the scan time is not fast enough. I've been using a LIM instruction which has been working, but its not quite as accurate as it needs to be. I switched the counter logic to be continuous to try to make it faster which made it almost perfectly accurate... But only in the continuous task; it made the other periodic task significantly less accurate. I was curious if any of you had any tips on how to remedy this or just general help. I am still relatively new to PLCs and ladder logic so any advice would be awesome, Thanks in advance! Edit: The purpose of the counter is to cycle through from 0 to 1000 over and over again. My outputs actuate during a certain interval within this cycle (For example I would say actuate from 300 to 800 and it would stop and end once it hit those values via an EQU or LIM instruction). I wrote the logic as follows: First I calculate how many cycles per minute I want to perform, using that value I calculate how many times I want to increment my counter per millisecond. Then a timer is given a preset of the total cycle time. While that timer is running I continuously multiply the timer's accumulated value by the "cycle count per millisecond" that I calculated earlier; the resulting value is the current count that all my outputs are based on... Hopefully that makes sense, I know it's not the best but I could not figure out a better way of doing it and I know rounding is certainly making the accuracy worse. My hardware is: Allen Bradely PLC (5069 l306erms2), 5069-ob16, 5069-ib16, and a Kinetix 5500s2 Driver for my motor(s)
  5. Hi there, I am fairly new to programming serial communications, especially with Mitsubishi PLCs. Can someone walk me through in ladder logic how to bring in ASCII to the PLC, store the data in the data registers. Then send the data out to another PC once an 'X' input is satisfied? ASCII code would go like the following: C2,0,1,123,2,ABC,3,456,CR
  6. Hello everybody, i have some uncertainties going through my head. i am fairly new in PLC word, graduated last year, last 12 month i did project on Siemens PLCs, but now i have to expand my view with Mitsubishi. 1. i am working on project with several conveyors. for each conveyor type i have FB fairly similar to my FB in siemens. For all conveyor i am using same sdt containing 32 bits. So a have array[0..20]  of said sdt. But in fb i was not able to copy item from array, through input var containing index of that item to vocal variable, which i wanted to write back to the array at the end of fb. I tried different approach ->  using item from array *** input/output.  When monitoring item from array i can see, that variables i change in got2000 panel are in fact changing. But when i monitor fb itself, those same variables are not changing. i reworked this fb several times, for example when i found out that FB variables FB FXcpu cannot be set as retain so i would like to use it and i see no other way than make this fb work. :D 2. Is there possibility to us FB in another FB? I remember that i read some restriction about this, but now, i cannot find it. Thank you everybody for your responses    
  7. Hi guys, I'm new in the forum and I'm quite new also in Sysmac programming, in ladder programming at all, to be honest.   I have some years of experience in programming CNC machines using C, on a owner platform. most of the functions I was using there were developed using "step sequences order". I mean, I had functions continuosly running where I was able to control the steps,  using the switch/case contstruct, and pass to a step to another just changing the reference variable. To be more clear, something like this:   functionStep = 0; switch (functionStep)   case 0:        if !(somethingToDoHereIsDone())                      break;       functionStep = 10;   case 10: .... and so on.   In the Sysmac programs I was able to see, something like this is possible to perform using register and AryShiftReg function. but I find it's quite complicated to manage if I want to insert intermediate steps in a second moment and most of all let an external part of the program to know in which "logical step" I am in my function.   Can you suggest me, in your experience, how can a sequencial function can be defined in Sysmac?   thanks a lot for your help.            
  8. Hello from korea :)   actually i am new to company which i do freelancer job and i am not used to dealing machine with sysmac studio its hard to make things perfect...   its just simple thing move servo motor.. you can check my situation more closer if u see the picture that i uploaded   i think control servo motor By function named MC_MoveAbsolute4(Axis,execute, parameters......) i just use that function by put them in while loop so that i can check the move of motor but nothing happen lol   What can i do!
  9. Hi there! I recently discovered this forum and I find it pretty useful for sharing and learning about PLCs. The thing is I'm trying to make a Stack using the SSET(630) instruction in a CJ2M PLC. Reading Omron's W340 manual I saw that PLC memory address for the different stack channels is represented as "00010000" to "0001000F". So, in order to set the last stack word address as well as the pointer's address, how do you know those values? Or am I just misunderstanding something? Thanks in advance!   Edit: Solved, the definition of the stack was wrong!    
  10. 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.
  11. 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
  12. 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  
  13. How do you test PLC logic?

    We have been working with PLCs for long time. We used to develop PLC logic, partly test it on an emulator and test the rest on the partly energised equipment. From time to time working with computer software development (C# and JavaScript) I was always looking for something similar to unit testing in the PLC world. As I couldn't find anything at that time I've started developing own automated testing tool. Now we use this tool, which basically simulates PLC inputs in defined actions and checks expected behaviour of internal tags or/and PLC outputs. If it behaved the way we expected, it's PASS, otherwise it's FAIL. We break complex logic into small parts and create unit tests for it. By creating more of these unit tests we can test PLC logic of any complexity. The software called PLC Logic Prover and it's free at https://www.controlx.io Recently, I've been told that there is no point to develop anything new if there are already great tools on the market. Honestly, I didn't do proper research earlier, so I'm here asking the experts. What do you use to test PLC logic? What automated testing tools do you use? Is it using IO simulation or it can test logic by other means? Your replies are appreciated. Thanks, Alex
  14. Hi guys, since this is a forum for people starting out with TIA Portal, I would like to share with you my course that I developed for the last 6 months.  This course uses a real-life sample application and translates it into a fully functional TIA Portal PLC application.  This course of 2,5 hours consists mainly of video explanations with practical programming assignments to put your newly gained knowledge straight to work.  As a controls engineer, I have over 10 years of hands-on experience with TIA Portal ranging from software development, commissioning and troubleshooting. At the end of this course, you´ll be able to: Structure and program a real-life user application in TIA Portal Download and Troubleshoot a TIA PLC application Program function blocks (FB) using ladder logic Build global data structures using user-defined-data-types (UDT) and data blocks (DB) With the coupon link below, you can enrol for only $12.99 (might vary depending on the country you live in).  The course is normally $99.99, so you get an amazing all-round programming package for almost no money.  So go and check it out  Take me to the Course Now!      
  15. Did you always wanted to get started with Siemens TIA Portal programming, but you were never sure where to start or how to get the best performance out of the platform? Eager to upgrade your TIA skillset from an instructor with over 10 years of TIA experience in the field?   -> Then this course might be just for you! My course "Siemens TIA Portal - PLC Programming Basics" will take you through the steps of creating your very first TIA application - from structuring (very important!) and programming your application, to downloading and troubleshooting your application online.  The course is based on video lectures and is around 2.5 hours long, and consists of 40 lectures divided over 6 main chapters. The enrolment fee is offered at a huge discount at the moment, so take action while it lasts! Take me to the TIA Portal course, I´d like to check it out...   Thank you, and I hope to see you inside the course! Hans
  16. Kinetix 300 Ethernet/IP Locks Up

    I am trying to use an Automation Direct Productivity P2000 to control a Kinetix 300 servo drive using Ethernet/IP.  I got the EIP working fine using Explicit Messaging.  The hardware enable and overtravel limits are hardwired ON.  The drive doesn't show any faults.  When I turn on the software ENABLE bit (bit 7 of byte 0 in the Output Assembly), the Ethernet communication stops.  Motionview continues to work, but if I disconnect and reconnect, it can't find the drive.  I have to physically power down the drive to reestablish Ethernet communication.  Once I power back up, EIP communication resumes with no issues. Any thoughts?  What am I missing?
  17. 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.
  18. FX5UJ

    Hello There Im programming a FX5UJ but when i want to simulate, this option is not enabled , the version Ive got of Gx works 3 is 1.063R. Is there a way to enable this option? or is not available  for being new version? Thank you in advance  
  19. Vipa

    Hi everyone. I have one trouble with VIPA CPU it's similar to S7-300.I have a problem with profibus i checkall cables and connector for slaves but all seem good. If there is other way to found the slave missing i need to know it. Thanking
  20. 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
  21. AVE instruction Error

    A little background information here, I am trying to create a moving average so I accomplished it with the code (imaged attached) The problem i am having is the AVE instruction error bit goes true. it leaved me with a result of 1.#QAN  I did some googling and it said this is typically done when dividing by zero?? so i added a NEQ to 0 prior to loading the array. then it happened again. so i put the error bit in front of the FFL so it will stop loading the array when i get the error bit so i can see what values are in the array when it errors out. Has anyone else had this issue and what could you do to resolve it? I haven't had any luck find something that points me in the right direction. Thanks in advance for your help.
  22. 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.
  23. Modbus fonction block error

    Hi everyone, first time posting here. I've got a problem with the Modbus MTCP-CP1L-Server fonction block. it worked fine for a good amount of time until i try to change an ethernet switch (not managed) on my network. at this moment the fonction block started to give me an error code (2211 ''unit is busy, can't execute''). So i put the old switch back again and I called Omron and they tell me to download Etherway and try to send some data to it but they can't do more. I did and BAM, it worked again. everything was fine for about a week and i was like, okay if etherway can ''solve my problem with the fonction block, i can put the new switch again, No I can't. It give me the same error, I try'd so many thing( put the old switch, everything that was possible in Etherway, change IP address, ethernet setting, reboot everything, connecting the unit direct to my PC. nothing can erase that error.  Unit is an CP1L-EM with built-in Ethernet port did someone had have the same problem, or have any idea that can help me ? thank. Sorry for my poor English, its not my first language.     
  24. Hi, Could anyone help me out on how to extract the digits present in a string in sysmac studio... Thanks in advance !!!
  25. 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.