Jump to content


Members More Space
  • Content count

  • Joined

  • Last visited

  • Days Won


Everything posted by Isakovic

  1. - Make a new Variable with that MI in it. - Select part of the screen where you want this MI to be displayed, then right click -> Attach Variable - Input will activate whenever you navigate to that screen. If you want to have input only when you press a certain key (usually enter), you'll need to make a logic that will set SB39 each time you open a new screen, and reload a screen when enter (or whichever key) is pressed. I think there's a topic about this in forum somewhere, maybe even in examples in U90.
  2. Looks like this is always the case with energy meters. You use "Struct" block under Vector -> Struct for merging those two registers into a float. There is an explanation for struct block in help file. After that use math function blocks for floats to extract the values if you need them converted to int.
  3. Hello Rog, What do you mean by taking out IP address? After net 6 is executed what status do you get for Socket 1, 19 or 23? As Flex said it should work the same regardless of controller used, V570 or V700.
  4. Status 23 means it is connected. You run connect block when Socket 1 is connected in your logic, it should be MI2 not equal 23. Also, nets 4 and 5 are the same.
  5. Reuse Socket

    Hello Aus, I also set SB168 at power up, I tried messing with system bits but that didn't work. What I found to work is next sequence: - Init Socket 3 to TCP master (port as before 20259) - Delay 2 seconds - TCP connect on Socket 3 to timekeeper Server on port 123 - Delay 2 seconds - Init Socket 3 to UDP, port 123 - Delay 2 seconds - Whole update sequence - After 1 minute Init block to restore Socket 3 to original settings I don't know why it works, but it works. Hope this helps someone.
  6. Reuse Socket

    This is what I found: It will work normally as long as no TCP connections take place on Socket 3, like accessing from VisiLogic or Remote Operator. As soon as PC connects at least once it will not work until PLC restarts. It doesn't matter if PC-PLC connection disconnects normally or it is violently broken. I don't know how to clear whatever PLC set in its memory. I tried closing the socket and then initializing it to other TCP and even this Modbus workaround Javier did but it doesn't work.
  7. Reuse Socket

    Hello, I'll revive this topic because I ran into a similar problem and seek advice. Does anyone know what are the codes for socket states? I also have to reuse a socket but protocol remain the same (0=PC applincation). Socket 3 at the beginning is TCP / Port 20259 / Server, then, at 4 o'clock every night, initialized to UDP / Port 123 to update the time and after that reinitialized back to TCP. It works fine for the first time (after PLC restart), but every try after is unsuccessful. Socket 3 state is 34 and there's no explanation in help files about socket states that I could find. When RFC function runs, Tx counter increments by 1, Rx remains the same for Socket 3. Other controllers that have UDP port dedicated for this purpose (no init block after startup) don't experience this problem. I'll fiddle with troubleshooting some more to find a workaround if possible in the meantime.
  8. I didn't even know this RTC freezing was a thing. I'm updating time sensitive application right now. Is it smart to let UTC functions run in every scan? Can you rowhammer the clock or something?
  9. I tried breaking NET 86 into several smaller ones and making it simpler, It couldn't been done in one NET anyway. It's always better to have simpler nets, I learned it the hard way. I don't have much free time now to work out the logic of the whole thing (like when should T1 start counting), you'll have to test if this is what you were looking for. I'd also suggest breaking programs into smaller subroutines, so you'll have Main routine (with optionally couple of nets for config blocks) calling other subroutines. Much less scrolling. Also, I see you went with SB15. Tell us how it works, and what precision you got. All the best, 59c0a61fb1bec_Sheetfolder.vlp
  10. Where to find unitronics PLC

    Type Unitronics Belgrade in Google. As close to Kosovo as it gets.
  11. This EVENT block is new to me. Glad I found it. I always used ladder with mesh of timers and indexes to achieve such scrolling through messages. This is much more elegant.
  12. Well, you could put SB15 (transition contact for 100ms pulse) and input in series and use it to increment a counter. When input goes low multiply counter value by 10 (because timer value is in units of 0.01s) and store the result in timer via "Store Timer" function block (under "Store" tab). I'm not sure about precision you can get from this. It may work ok for your application or it may be way off. As Visco said encoder is the best solution.
  13. How to do a total run hour in U90

    In U90 you have to build accumulated timer with ladder logic: https://unitronicsplc.com/Download/SoftwareHelp/U90LadderKnowledgebase/Timers/Counting_accumulated_time.htm In Vision controllers you can use accumulated timers.
  14. Is there any way to remove "Add new subroutine" button? I often click on it when I want to add a new net.
  15. New VisiLogic Version 9.8.64

    All that workspace! Do you also plan to widen U90Ladder?
  16. I didn't see this was in Job Board, I thought it was in Vision Forum and you need help programming, that's way I replied like that.
  17. That looks like an interesting project. But since it is incomplete not much could be said regarding your questions, maybe a few comments. It is good practice to have a safety par of limit switches. Maybe you don't need limit switches for oscillation since you should know the position from the encoders. Did you make an electric scheme? I opened your project and there is not much code in there. All I can say about it is that you shouldn't use normal contacts for load display function as it will be called in every scan and lock the screen. Also that ESTOP input should power off the outputs. A lot of work still, maybe you could start with ladder and post here when you get stuck.
  18. Looking for a piece of advice here. I put safety contact on wire that brings power to outputs, and noticed while testing that sometimes PLC loses serial connection with laptop when safety is activated. This made me wonder is any circuitry in controller powered from this side and is this good practice or should I change it? Jazz controller is on the picture but I also noticed this on Vision.
  19. Safety contact on outputs

    Thanks for input guys, that's a good thread sgull, very informative. There's always one safety contact for contactor command voltage for motors and in run command circuit of VFDs. Maybe cutting power to outputs has sense only for relay models, especially with disturbance it is causing.
  20. It happened to me when I had "Set String Library" called in every scan. Easiest way to find error if you have your program divided into subroutines is to put MBs you don't use in front of "subroutine call" in main routine and call them one by one by setting MBs.
  21. You use MB23 to connect Socket 2, MB23 is set only on power up, so if you lose connection there is no logic that tells it to reconnect. Add net: SB149 MB23 -|/|--------------(S)-
  22. OPC Communication Slow

    You can use Modbus for Vision-Jazz communication. Jazz has only one Ethernet port but it can be configured for both Modbus and PC connection (only one active at a time). Put memory segments you need to read in sequence (MI0, MI1, MI2...). Contact support for additional help to make SCADA work with all PLCs, it must be something trivial that you overlooked. I always received fast and useful advice Unitronics support.
  23. OPC Communication Slow

    I did have performance issues with UniOPC, it would overload CPU when large number of tags is being sampled, for this I switched to ModbusTCP. But it would work just fine with small number of tags. I never worked with ZView, what are communication settings for this SCADA? Like "Query pause" or com settings for channels (if you can switch communication to different channels they would run in parallel, while PLCs on single channel get pooled in sequence which tends to be slow). Are there any settings for tags like "store values" (for remembering historic values for graphs), I noticed those values get less omitted than those that are not keeping a record. Anyway, having instant response for SCADA with less than 1 second delay is not realistic. Like your 0,5 second flashing bit. You need different type of communication protocol to catch such a change.
  24. Hi there, You can use linearization blocks for this purpose by comparing current position with set point or use PTO functions in "Utils" menu to do this for you, there are examples for both ways in Help->Examples->Version900->Project Examples. If motor is not sized properly and you fear of loosing steps you could attach an encoder to Snap-in you are using.