Jump to content


  • Content Count

  • Joined

  • Last visited

Everything posted by Swervomotor

  1. Look a the help file under "timer TP" and "increment" You can use the falling edge of Timer.Out of one timer to start the other and increment your counter. I try to avoid using direct coils if possible and use SET and RESET coils.
  2. Ok, looks like the Node RPI is restricted as read only from ladder so Q1 is out. I am however wondering about Q2 above, The enable bit is read/write from ladder so wondering about any "start up" delay.
  3. Good day everyone, I have a project with 20 Ethernet/IP scanners running on a unistream 15.6". The machine network is separate from the plant network and goes through a layer 3 switch with VLAN port. I also have 6 Modbus TCP devices running on the machine network. I noticed when debugging the program I was having some bugs from what I assumed was network clogging with cyclic communication. By lengthening the RPI on some nodes I was able to resolve most issues. I also have a lot of disconnecting issues when trying to monitor in Online mode. I notice in the Help file under the Scanner Node Struct there is a Uint16 for the RPI. 1st Question: Am I able to Write a value to this "on the fly" and not have to reset the plc? Not everything on the machine needs to run at the same time so I would love to be able to transfer higher RPI to nodes when not in use and lower RPI to those nodes in use. 2nd Question: Am I able to use the "Enable Node Bit" (in the same struct) in the same fashion on the fly? if so, does the device stay connected and you would be able to turn on or off cyclic communication in one ladder scan? Or would there be a delay (greater than the RPI) after the node was Enabled before communication would begin? Thanks, -Swervomotor
  4. Just did a "Fill Array Part" and that did the trick, Thanks!
  5. I ran into a solid red LED with a transistor module, contacted support and they said all 0v and +V connections needed to be connected even if you were not using that row. Connected jumpers from 0V to 0V and +V to +V and it fixed the issue. Just a starting point but I would contact support.
  6. I decided to use Internal Control Bit Arrays 2 x(255) on this large project to keep the global tag list manageable. I need to reset all these bits with an HMI button. Is there a way to reset an entire bit array? I get compile errors when attempting to use the reset coil. I really really don't want to have to put reset coils in for 500+ bits Thanks in advance
  7. What are some ways to speed up screen changes in your project? I have a screen with 9 data tables (1 visible at a time based on the value from a combo box) and about 30 buttons (same only 3 visible based on combo box value) It takes about 5 seconds to load this screen. What are some ways to speed up screen changes and optimize HMI design?
  8. This ^^ I think this could be done in less than 10 rungs. One idea of process flow is: Function In: Last Row to read Local Variable: Value1 variable SumTotal = 0; RowIndex = 0 Do until RowIndex = last row to read Get Value from current row index (built in function block) and move it to local variable (store) sum (SumTotal + Value1) Index RowIndex Loop SumTotal = Function Out.
  9. Lifo table, you could pretty easy build a UDFB that took as a "function in" the # of rows that you wanted to SUM the specified data, then with the help of an increment run through each row and sum to a temp local variable, then move that to function out and reset the increment. You could then just change the # of rows (which would be at a fixed sample rate) to get your 24h, 7d, 1M Function Outs.
  10. My suggestion would be a Data Table Index to store you data. Then use a combo Box and give each "index" a title 0-50. (or however many you need) Use the selected index # in a "read row from DTI" and use the index # as the row number (parameter B). I would use the "tag selected" bit in the combo Box configuration to pass power to the "read row from DTI" then add the reset to the end. You can always add a data table to the HMI to view the raw data. If your program gets more sophisticated and you need to do some automatic table searching you can use the other DTI functions like "Find DTI Column Value" to get the row index #
  11. What I mean by hacking the firmware is just using their hardware but taking their server and software out of the equation off the device. Basically loading your own ESP8266 type firmware and running it off your own app/P2P/Mqtt backbone. I can't build a relay with ESP8266 for what I can buy one of these for. I have not tried it yet but it may come into play in future projects. Right now the work doesn't justify the end. As security is not really a concern on my light switches haha. If I was going to integrate these across more security sensitive applications I wouldn't as it stands.
  12. I use these around the house for lights and ceiling fans: https://www.itead.cc/sonoff-wifi-wireless-switch.html They can be had for less than $5/each, if you trim the ends off they fit in a US standard box and I wire them at the light switch in parallel so in the event they go offline I can still operate the lights via the switch. They work with alexa/google (through the vendors server) and the wife loves them. It's basically a 10a wifi relay. Would I trust them in an industrial machine? no. To turn on my light? yep. They are "hackable" in terms of loading your own firmware aswell. Seems like the IIot makes sense with one caveat. Only on a local network. With a central Server that hosts the control. I can see data being able to exit but control not being able to enter.
  13. Hopefully it will come in the next release fingers crossed. I understand, I was a Mod for a long time on a couple forums and usually we had a minimum # of approved posts to deter spam accounts. Seems like stuff around here gets approved pretty quickly so not really a big deal just wondering when my orange bar of shame would be lifted.
  14. This may seem trivial but is there a way to define the zoom setting in ladder editor so when you open it it starts at say 70% instead of 100%? I did not find anything in the Project-Options but was hoping it's somewhere else? I have 18 "modules" that I need to open and close regularly and when I re-open it, boom Gigantic. Additionally, to the mods: How many posts do you need before your comments and posts need to be approved?
  15. Thanks for the responses, the ole Copy-Paste-Delete all rungs was the only way I could get it done. I was hoping the labels were stored in a table somewhere that I could just re-order or drag-n-drop in ladder editor would be awesome. I will be more diligent with my planning next time. This project has ~ 50 regions so far.
  16. Sounds like you could create a UDFB to 1. "Find DTI Column Value" 2. Insert row data into a holding struct 3. "Write Row to DTI" Your Function IN could be a variable with the data type you are searching for in step 1 above. This would save you lots of code if you need this multiple times.
  17. Is there a way to re-order regions? in the ladder?
  18. Not sure but I get a Red X, when I tried to change it to C : it went away but I was connected to the drive as shown in the picture below. I ended up running into all kinds of problems trying to update the firmware. "identifying hardware" death loop when trying to connect over USB, "failed Update" when updating via DOC formatted to FAT32. I ended up giving up with trying to update and just downloaded the old version of the software then uploading, making the changes, and re-downloading. I just don't understand how you cannot even connect to a PLC with older firmware to grab the program off it. Using any of the connection methods PC-PLC communication etc.
  19. Why does Unilogic force me to update the firmware on the PLC even to just upload from the PLC? I'm trying to make a small change (ethernet IP scanner IP addresses) and when I try to open older version of unilogic it won't let me create a blank program to be able to go "online" and upload. So I go to newer version of Unilogic and create a blank program try to go "online" an it tells me I need to update the firmware on the PLC. So now I have to: 1. download the latest version of Unilogic onto a laptop 2. go find the PLC on the factory floor 3. OPEN THE CABINET 4. Connect USB drive or cable 5. Update Firmware 6. Hope the firmware update doesn't wipe the existing "upload" file Has anyone ever considered backwards compatibility??? This program was created less than 7 months ago.
  20. Unilogic on PC ----> PLC Setup "Panel Ethernet" Make sure PC is on same Subnet. example: PC IP PLC:, both same subnet You can do this from the PLC Uniapps screen or download from unilogic with USB cable. Connect ethernet cable from pc--->PLC either directly or through a switch. Then click "Online" put in the PLC Panel Ethernet IP address and click "Online" Unistream ---> sick Ethernet IP communication is through "CPU Ethernet" you need to set up device IP, Subnet, making sure both devices are on the same subnet. Connect ethernet cable from SICK--->PLC either directly or through a switch. You need to setup PLC Communications-->Protocols-->Ethernet-->Scanner---> add a scanner with the manufactures provided assemblies. You will have to build the input and output assemblies I recommend building structs then creating a global tag as "type" struct. If you want to access PLC screen from PC You can use a VNC viewer Or build webserver screens and access from any internet browser on the network.
  21. I think Unitronics is working on an EDS importer but for now we have to build them. I have structs for the SMC EX260 and it is just a few bit arrays. Maybe this will get you on the right path.
  22. Your new video banner on the main Unitronics webpage will not allow you to select anything from the drop down menus because the "welcome xxxxx" covers them and de-selects the drop down as soon as you move over it. running Chrome Version 71.0.3578.98
  23. I'm currently working on a project involving a Unistream 15.6 as a supervisory PLC for 2 Epson Robots (a 6 axis and a 4 axis) and a keyence vision system for vision guided robotics. They are communicating over Ethernet/IP I'm wondering if anyone on here has experience with programming practices for how to handle the robot control in this situation. Setup: Unistream- Master Robot 1 - Slave Robot 2- Slave Vision system- Slave First idea of data flow and control: PLC triggers camera----->vision returns position data in a register (pre-calibrated to robot) to PLC-----> PLC writes position data to multiple registers in robot controller which the robot controller then stores as a Point. ----->PLC turns bit on for robot to move to position----->robot returns bit when at the location and writes current location to register (So PLC knows where it is at all the time)-----PLC sends next point data------->repeat----->repeat This method seems to have very little programming on the robot controller itself and would allow data tables stored on the PLC vs Point data on the robot controller. Draw backs are when Jog/teaching new points via the robot controller the data would have to be entered into the data table on the PLC manually. Second Idea is to have multiple sub-routines in Robot controllers and "call' them with bits from the PLC, the vision guided position data would still need to be transferred for vision--->PLC--->robot but all the other point data such as way points and place points would be stored and managed on the robot controller. PLC triggers camera-->vision position data sent to PLC--->PLC sends position data to Robot---> robot picks part and moves to several points independently then turns on a bit when it finishes. What are your thoughts on this?
  24. Ver. 1.25.56 MODBUS TCP is active and working when using the "ID" in Field (B) of a Modbus Aperiodic trigger function, it works. When I put the Tag for that same register in the Field (B) it does not work. Expected I guess as the tag is actual data not an address, but it would be nice if this was linked to the ID somehow. The only way I see around this is to have an entire struct of ID numbers with Tags or use a table to search the desired tag and store the corresponding id into a tag. When using the MODBUS APeriodic Indirect Group Trigger to try to get around this, I enter the Group ID entered in the Registers Aperiodic table and it does not work (get a status code 2) The only option this is leaving me is to have to remember all the registers by ID? Registers Periodic work but I need to trigger this register send in the ladder vs sending it over and over again clogging up my network.
  25. Is this available or in the works? I saw somewhere the EDS Import function for CANopen was available, what about Ethernet IP? Building structs from the EDS file is not my idea of fun.
  • Create New...