Jump to content

All Activity

This stream auto-updates     

  1. Past hour
  2. So I tried out an adapter. It seems to work okay with Win7 on bare metal, but was almost completely incompatible with a virtual machine. I guess I'm going to have to learn to live with a serial port... argh...
  3. Today
  4. Kestralcontrols

    Download a file using a "Hyper-link" in UniStream web server

    Hi NoamH, Thanks for the quick reply. I was using this method, but it kept failing. The problem was that the SD file structure on the card is not the same as it is shown on the HMI file browser. I was trying to download a file that was located within the Data Tables directory. I assumed that the directory was named "Data Tables" because that was what the file browser named the directory, but when I removed the SD card and read it, the real directory for storing Data Tables is named "DT" When I changed the path to /ExternalSd/DT/08-18.scv instead of /ExternalSd/Data Tables/08-18.csv it worked. Thanks again. Sam
  5. You are trying to program like you would a computer with some other language, not program a PLC with ladder logic. PLC ladder logic should be organized completely differently. Every rung of every subroutine should be evaluated on every scan. You probably should be using a State Machine instead of what you're trying to do. Our resident genius, @Joe Tauser, has written an example program to help educate us on this terrific technique to handle the type of situation you are trying to deal with. Looking at your edit, it appears you might be headed in the direction of a State Machine, which is great. Look at Joe's example program and see if it helps you.
  6. Hi Kestralcontrols, In order to download a file that stored on the SD card via a web server "Hyper Link" use the prefix "ExternalSd" before the path to the file. For example, lets assume the next file exist on my SD card "/MyDir/MyFile.txt". and that I have a "Hyper Link" widget that it "Tag:Link" is tag PATH_TO_FILE. If I will set PATH_TO_FILE to "/ExternalSd/MyDir/MyFile.txt" and press on the "Hyper Link" on the web site the file will be downloaded:
  7. Hi, I'm trying to create a Web Server link to download a file stored on the SD card. I have tried copying the example shown in the help-file section "WE: Hyperlinks" but it returns an error "invalid URL address". How do you covert the SD card path into a valid URL so that it will link the anchor text to the SD card file. Kind Regards, Sam
  8. Rivka

    Size in memory of ten Data Samplers

    Hello, As you can see in the "Note" section of the SD Management chart, the "Maximal number of files in SD" is expressed per Data Sampler folder. Hope this information helps.
  9. Ofcourse! I should have seen that .. Well, the problem is that each subroutine will take numerous scans before it is finished. This is because each subroutine will contain rungs where I am waiting for a motor to be in position. So I cannot just let subroutine 2 start if something in subroutine 1 is not finished... edit: I should probably have mentioned that I am using a counter and compares at the start of each rung in the subroutines to see if I can execute that rung (sequential program). Now that I think about it, I could use values for that counter from 0 to 100 for subroutine 1, from 100 to 200 for subroutine 2, and so on, and then I would no longer need the "sub 1 done" bits to trigger the start of sub 2. Just need to make sure that the counter at the end of sub1 is 100 so sub 2 will continue after that...
  10. Almost the same here. The only difference is that I am using an accumulated timer for more precision:
  11. If ladder rung #1 is supposed to be a standard latch circuit, it's wrong - MB 2 should be MB 4. I think conditional subroutine calls are very poor programming practice. You have to be extremely careful not to leave coils hanging in limbo when the subroutine stops being called. With PLC ladder logic, the next subroutine is normally called when the previous subroutine is finished - and not before. You don't need a bunch of code to create that situation, as you seem to be doing here.
  12. Yesterday
  13. Hello all, I am a beginning plc programmer and I have to program a small machine. Since the machine is a prototype, it is not needed to have a perfect program with good fault messages or the ability to run slow or anything like that. I just like to have a simple yet safe program to prove that our prototype will do what it's supposed to do. The machine has a start and stop button and it needs to home before it can run in automatic mode. I would also like to split up the automatic cycle in some subroutines. I made some example code that I would use for the main routine. Would this be good code to start from? Or am I missing something rather important? Thanks for anyone who can offer some advice!
  14. Yes, there is a GoTo in Unitronics Ladder Logic, but it should be avoided. It is poor programming practice in 99.9% of circumstances. There are far better ways to execute only the rungs you want executed. My philosophy is to work backwards from outputs or coils to inputs or contacts. Determine every circumstance that should turn that output or coil on and write that logic. When that is correctly done, there is no need to skip rungs because they will not activate the output or coil automatically. A simple way of accomplishing this is to assign a coil to turn on when a>=b, then place the inverted contact of that coil in front of the logic you want skipped.
  15. Is there a way of setting up a goto equivalent? For example using a compare, if a>=b then goto xxxx, leaving out the rungs in between which would be evaluated if a<b I am still having endless problems with the compare. It happens in both main routine and subroutine, and only on one particular thing, stopping a motor, which is kind of important ..... I am using other compares and they are fine
  16. It seems that way too many programmers (especially in the beginning) fail to recognize what the ladder rungs are in ladder logic. The screen is not just a blank slate to write the logic willy-nilly. The purpose of the rungs and separating logic threads is that the compiler will create machine code that tells the PLC to fully evaluate a single ladder rung before moving on to the next rung. When you have two logic threads with dependency between them and place them both in the same ladder rung, the programmer has lost control over order of execution. When in separate rungs, the programmer knows the first rung will be fully evaluated before starting on the next.
  17. Thanks for explaining. So the first rung will not work as expected but rung 2+3 will ? I have seen things like this in a program so I will pay attention to this.
  18. Cara Bereck Levy

    Slider & Trend Visual Suggestion

    Hi--sorry I missed this when you posted! I have submitted your feature request; I'll let you know the decision (it may take a while to receive)
  19. R.Mozes

    UniStream 5" freezes with no reason

    Hi Juan, Following Ofir's questions above, can you please also update us the PLC's serial number? Please reply to support@unitronics.com Waiting for your updates. Thanks.
  20. I love this thread--very good example of what the forum is all about Chris, if you haven't come across it, you may want to check out the Help topic Program Sequencing. Also, right-clicking the left-hand rail will open a menu that offers a view option called 'power flow'. This shows little arrows in the direction of flow--which is a handy thing as well/ 4236A6B4-B5AC-493C-9E71-D458B9A09263.SNAG
  21. Last week
  22. You don't need to do Download All & Burn until you're ready to place the machine into service. During program development and troubleshooting, just do a simple Download. Download All & Burn wastes a LOT of time unnecessarily.
  23. I checked everything, and subroutines are being called. Strangely I did some other work and decided to do a download all and burn, and they work again. I am still trying to track down the reason why the coils show true and the compare is false.
  24. I think he said it backwards - do not combine networks in a single ladder rung. The first picture shows two independent networks, or logic strings in a single ladder rung. NEVER DO THAT. The second picture shows the the logic broken up into two separate ladder rungs properly. I created the examples in VisiLogic to show more clearly. Rung 1 shows how NOT to do it. Rungs 2 & 3 show the correct way:
  25. Hi Phil, I find this interesting. What exactly do you mean with “a single network”? in de second figure do you mean that the second rung is in a subroutine? I dont really see the difference between the first and the second picture right now.. thank you
  26. The first two don't look fine. The compare is false, yet the coil shows as true (they're in red). Do a find on each of the coils (MB 16, 17, & 41) and confirm they are not duplicated elsewhere. Also, confirm the subroutine with the compares is being called in the Main Routine.
  27. Hi everyone, I am having the same problem as the OP here, however it seems to be intermittent In a subroutine I am using a >= compare (rung 5 in the photo). The output is a direct coil. The contact is in the main routine is a positive transition. When the criteria are met, the online test shows red passing through and sometimes the coil works and sometimes it doesn't. I deleted the coil and the contact, created new ones with a new MB and the problem remains. In the same subroutine I have three compares in three consecutive rungs, the first two work fine, it is only the last one that bugs BTW it is also the last line of the subroutine, could this cause a problem? I am using a Samba SM70-J-R20 and Visilogic 9.8.65 Any thoughts or tips will be greatly appreciated.
  28. Hi Joe My communication is good. As i said my problem is to map the RTD'S from my IO-PT400 to the Vision 130 via the EX-RC Unit.
  29. Hi Joe Thank you for returning to me. I see it on the EX-RC1 operands and see how the temp change from the probe but to send it over programming is a problem. I do not see the reading on the vision 130 plc. It is a program issue not a comms problem. All my outputs work well as you told me to set it up. My understanding of the RTD temp probes is that you do not need a struck command but have to linearize it. Is this correct. So how do I send it over from the EX- RC1 and see it on the vision 130. Paul
  1. Load more activity