Jump to content

Joe Tauser

MVP 2023
  • Posts

    2,855
  • Joined

  • Last visited

  • Days Won

    308

Everything posted by Joe Tauser

  1. You can use Wireshark to monitor Modbus TCP communications if you can get your hands on an old Ethernet hub - all packets are broadcast out all channels. I've been told a managed switch can do the same thing but I don't have access to one of those. This hardware setup has been very helpful in a problem I had troubleshooting Modbus TCP errors that turned out to be caused by packet timeouts. You are on the right track. Joe T.
  2. Generally, yes, if the power supply supports half-duplex RS485. Read all about it here- http://www.bb-elec.com/Learning-Center/All-White-Papers/Serial/RS-485-Connections-FAQ.aspx Joe T.
  3. That is the Region Comment. The rung comment is a different story. Right click in a network downstream from the first one- You still get to type as much as you want, but this is all you see- I couldn't figure out how to display more of the comment. But then again, I am hand dyslexic. Maybe I have to pinky-click. 😊 Joe T.
  4. A TA accumulating timer must be manually reset. Just use a reset coil with the timer's address. Joe T.
  5. When I enter a rung comment in UniLogic I can only see a line and a half, not several lines like the old Visilogic? Is there a way to expand this display to multiple lines? Joe T.
  6. Is the delay between Outputs always the same? What is the maximum value for X? I would use a combination of a timer incrementing a pointer and a Set Bit block to tick the bits on in an integer tag or array, and then do a Num to Bits function to transpose the number to the outputs in bit form. You could reverse the operation using the Reset Bit block to turn them off. This method is above beginner level - what is your experience with manipulating bits in integer arrays? Joe t.
  7. You've defined a UDFB called temp_controllers, using local and function tags. Local tags are destroyed and recreated every scan, so in the first two networks, you are comparing an input variable ("indicator") to something that hasn't been created yet ("indminus2") and making a decision to set a local output coil. It's not going to work right in this order. You must think like the PLC - solve top to bottom, left to right. Unless you're going to have a lot of instances of this temp_Controller function I would stay away from UDFBs until you get more comfortable with UniLogic in it's regular form. Just write ladder code as you normally would. Joe T.
  8. Yes. Start by using the "Find Substring" function to the location of the "/" characters. You may have to call the function a couple of times to find them all - put the separate found locations in separate tags. Then you can use the "Middle of String" function to extract your data. I'm not going to post any more here right now because I would like you to try to build this yourself and post your program to see how you're doing. Joe T.
  9. Hotwires is correct - you're going to have to roll your own "Modbus" command block. Modbus command codes only go up to 24, but it shouldn't be too hard to make your own data frames- http://modbus.org/docs/PI_MBUS_300.pdf The Protocol Send block has a checksum calculator built in- I can't tell you exactly how to do it as I've not done it myself. Have a go and post your program and we'll see what we can do to help. Joe T.
  10. You don't have enough placeholders on your display for the variable. I meant to post your code to the forum so we could have a look at it. Joe T.
  11. Had to update my UniLogic vesion and finally looked at it. I'm still learning myself on the UniStream, so bear with me. I think the Help has been updated. Take a look at this- So it looks like I was wrong - you need to trigger the COM Rx with some condition based on the tag linked to the COM port. This is different from the Vision. Only problem is this is for an RS232 com module. I poked at your program with the RS485 struct and hopefully duplicated this. I don't know if your string contains a carriage return, but it doesn't hurt. If it does, you may need to change the array element - I used [0]. Joe T. PSU_v1_JT.ulpr
  12. V350-35-TU24 is not a valid model number. Is it possibly a V350-35-TA24? If it is a -TA24, you'll want to use either output 0 or 1 in step control mode for the pulse inputs on your stepper. Also note that this model is limited to a 500 Hz output, which may not be fast enough for your application. Joe T.
  13. You have some garbage left from the previous installation. Refer to this post- http://forum.unitronics.com/topic/694-how-do-i-perform-a-full-re-install-of-visilogic/ Joe T.
  14. No. Without COM INIT block the system keeps the serial port all to itself. However, you can re-init the COM block from logic: This is really useful for the Ethernet port, which allows specification of IP addresses via MIs. It doesn't really help for the serial port- The only reason to re-init the block is if you make COM changes and download them without cycling PLC power. Sorry. Joe T.
  15. This is a good suggestion. I recommend you read up on how PID works and how each parameter affects the loop. Nobody takes time to learn anymore! Read the Help topic "PID Config Struct Parameters". So are you reading temperature in whole units or decimals? You mention SP = 110, but you say you get 109.5. Please be more specific. Is your setpoint 110.0? I'm going to assume you are working with 0.1 degree resolution. Your loop is too tight for minimizing overshoot. Set Kd (Td) derivitive time = 0. You don't need it unless you anticipate upsetting the system, like opening the door on an oven or dumping cold product in. The units on Kp are 0.1% of PV, which defines when the algorithm becomes active. So initially with Kp = 1, and SP 110.0 you are activating the PID at 109.9 degrees. With Kp = 5, it starts working at 109.5 degrees. Sound familiar? Manual loop tuning 101: Start with Kp = 100 (10.0%) and Ki = 0. Then start lowering Kp until the process starts to just ring around the setpoint. If it overshoots wildly you need a bigger Kp. Measure the time between peaks. This is the natural cycle of your process. Then take your Kp value and double it. The units on Ki are seconds. Enter the time between peaks value. Let us know how it goes. Joe T.
  16. Are you looking for a perfect loop with zero tolerance for overshoot? If so, your loop will be quite slow. Let us know what is acceptable to you and what your current PID parameters are. Joe T.
  17. There's more information needed to recommend a barcode scanner. You need to tell us your application. Barcode type? Wireless or wired? Distance if wireless? How rugged does it need to be? Budget? We've had mixed results with USB barcode scanners. I have a customer who plugged a USB scanner into a UniStream that worked perfectly scanning codes into Word documents and then returned funny shifted characters into the UniStream buffer. If you already have a barcode scanner, hook it up to the UniStream and see what happens. It may work just fine. Otherwise, I recommend a Zebra DS3678 with an RS232 adapter cable and get a UAC-01RS2 RS232 port module for the UniStream. Joe T.
  18. Are you rolling your own cables or trying pre-made ones? Have you tried CAT 6 cable? Un-amplified Ethernet is supposed to be good for 100 meters. I have found that all Ethernet cable testers are not created equal. Exactly what kind are you using? I originally had a continuity-type tester for Ethernet cables that I thought was good until I had a connection problem on a cable I installed in my office walls that drove me crazy. It was maybe 10m long. Then I got one of these- https://triplett.com/shop/pairmaster-kit/ This tester revealed that I was getting cross-talk between two pairs of my home-brewed cable. I cut the ends off and tried again and was able to fix the problem. Something to consider. Joe T.
  19. That was the only solution I was able to come up with as well. When I imported the Excel file it re-arranged my Test1 Struct and the column order in the data table changed. I chose "Copy and Replace" on the import option. I've attached the original export as well as my shuffled one. Joe T. DataTable.xls DataTable1.xls
  20. OK, so I'm hand dyslexic. 😄 Which is why I use screenshots so often. And I wish other people would, too. The language barrier on the forum often causes an answer to take days while we try to figure out what each other is saying. Joe T.
  21. This means you put it on the rightmost position of the network with no conditions. Is that what you mean by this? Posting screen shots is often very helpful for clarification. Joe T.
  22. Unitronics' official position is you can not extend the I/O bus. We have made an "unofficial" 36" extension cable with shielded flat cable that we sell. It seems to work. Send me a message if you're interested in one. Joe T.
  23. So let's start at the beginning of the receive logic and work through each block. In this network You're triggering the receive with the Last Byte Count = 0. Why? Have you tried hanging the COM Rx block right on the power rail? If so, does anything show up in the Rx_Buffer tag at all? Joe T.
  24. Downloading the OS is the proper thing to try. If that didn't work there's something wrong with the RC1. Joe T.
×
×
  • Create New...