Jump to content

Flex727

MVP 2023
  • Posts

    3,270
  • Joined

  • Last visited

  • Days Won

    238

Everything posted by Flex727

  1. Just use binary text or binary image buttons with TOGGLE turned on, then have a ladder rung for each button with a positive transition RESETing each of the other buttons.
  2. For some reason the file size limitation is cumulative. You have to go to your Profile/Edit My Profile/Manage Attachments and delete some of your previous attachments.
  3. I just choked another subroutine. This one had 273 ladder rungs with no Function Blocks at all - just ordinary contacts & coils and a few timers, and none of the rungs were very complex. The reason this subroutine had so many ladder rungs is because I normally have one subroutine just for Inputs (and another for Outputs) where I buffer each Input and add some logic to enable the user to convert the Input from Normally Open to Normally Closed, if needed for the future. This particular project is a beat down as it has 135 Inputs (and almost as many Outputs). This got me worried that I might run out of project memory, but apparently no worries there:
  4. Yep, that would be great if all the events were in a vector. Assigning or moving all the event MBs into a continuous block is more trouble than it's worth right now, but I'll keep it in mind on future projects. The primary reason I don't use the Event FB is that it is extremely difficult to troubleshoot and I hate dealing with it. Considering the complexity of the current project I should have reevaluated my general habit in this regard. Thanks again, HigHTech! By the way, I'm still looking for the answer to my original question.
  5. Thanks for your interest, HigHTech. This software is being written exclusively for a specific customer and I would prefer not to send it out without their authorization. I will try to provide more detail though. See attached to see what is inside those function blocks. It's really pretty simple - I want to log the date and time (and event name) to a data table each time one of 130 events occur. For instance, in the ladder rung I attached above, an operator might push a button (binary text switch w/toggle) on screen to disable RSU 1. Pressing that button causes MB 8001 to go high and that positive transition initiates the addition of a line to the data table, as stated above. I see no reason to add complexity by using an additional MB that gets set and reset when the data table entry completes because the data table operations occur within one PLC scan with no problem. My purpose with this thread was to try and understand the source of the compile error, however I am certainly open to learning a more efficient way to create this data table log. Here are the 3 function blocks from the ladder rung above, in order, and a look at the data table structure:
  6. Yes, they all need to run. Basically, I'm logging events to a data table. The 3 functions are: 1) Copy all rows of the data table down one. 2) Copy a single row from a different data table that lists all the events by name into the first row. 3) Write the date & time that I've already converted into a string into the first row of the data table. The 130 rows represents the approx 130 different events that the customer wishes to log. Here is what it looks like:
  7. One issue I find extremely annoying is that when I copy a variable that allows a keyboard entry (timers, numeric, ASCII variables, etc) the description field, which shows up as the prompt on screen for the operator, is deleted and replaced with a generic "Variable nnnn". I understand this field is used to establish some form of unique name for these variables, but how about leaving the description in place and just appending "(nnnn)" so that it is easier for the programmer to get the right description in the field?
  8. Have you reviewed the example projects included with your VisiLogic installation?
  9. I occasionally get the compile error 55 - "Subroutine ladder data size exceeds limit. Split subroutine to solve problem". Obviously the subroutine is too large for some reason and it's really no problem to split it up, as suggested, but my question is: what specifically causes the problem? Is it the number of ladder rungs or the total data size of the subroutine (meaning a small number of complex ladder rungs or a large number of simple ladder rungs)? The subroutine that I am currently working on that triggered the error has 130 ladder rungs, including the RET function. That doesn't seem like a lot, but nearly every rung is executing 3 different Data Table functions, which might be data intensive. By the way, I can find nothing in the Help file about this error.
  10. I just installed the app on my iPhone and tried it out. It works! And it's pretty cool. Great work!
  11. Another option, rather than change the controller, would be to add the cheapest controller (V130?) available with an SD slot. You could then add a little code to ship the data over to the new controller and store it on SD for retrieval. This would be not unlike an I/O module with SD.
  12. +1 There is something similar in UniLogic, but the ability to format the output on the screen is minimal (actually nonexistent).
  13. There are several PID example project files included with your VisiLogic installation. Have you looked at those?
  14. There is also an additional, separate filter function available if needed. Oops, sorry, I forgot I was in the U90 Ladder forum.
  15. Have you tried downloading a blank project first, then downloading your project? I've found that sometimes a PLC needs to be "cleared out" after downloading multiple projects (or even the same project multiple times during program development).
  16. Two questions: 1) What is the actual pressure range that is being measured from 0-10 volts? (You say 1E-07 mbar, but that it a number, not a range). 2) 10^(1.667xU-11.33) What is "U"? I ask because there may be a slightly easier way, but the most straightforward way is to break up the two parts of the exponential notation into two integers and display them as you would any integer, using implied decimal and a post number string that is built in to the HMI integer display.
  17. +1 I've had this happen many times. Each time it happens I figure out the problem a little bit quicker. Who says us old guys never learn?
  18. You can use Edit/Replace Operand... to move operands anywhere you want, but what I usually do is set up a few ladder rungs of code to copy the operands into some contiguous blank space (see attached).
  19. If there are not too many different ranges possible, just create a separate screen for each and the appropriate logic.
  20. I'm sure it's not unlimited, but you will be able to connect to 6 slaves easily. Just assign the IP addresses and Port numbers you wish to use in the PLC Communications/Protocols/MODBUS/Master and you will be able to communicate. I think UniStream can easily handle at least 30 simultaneous connections.
  21. Clearly that car belongs to a programmer of some sort.
  22. I frequently read and write to data tables, even multiple simultaneous writes within the same scan, and have found no evidence that the PLC can't keep up as well as regular MI memory operations. Obviously if you have some critical operations, you might want to run some tests to confirm, but I think you will be successful.
  23. I don't have an answer for this, but want to add that this happens to me regularly also.
  24. This is good advice. I rarely use counters and I realize that I'm overlooking a powerful feature all too often.
×
×
  • Create New...