Jump to content

Joe Tauser

MVP 2023
  • Posts

    2,858
  • Joined

  • Last visited

  • Days Won

    308

Everything posted by Joe Tauser

  1. There are a number of "artificial" limits in a Samba. This is by design. The Samba series was created as a response to OEM requests for a lower priced PLC. Unitronics did this by removing the expansion I/O communication circuitry and removing memory. Unitronics' reasoning is that if the application gets to a certain size then you need to step up to a regular Vision series. If you were able to get 26 displays in then I'd say you found a bug in an older version that worked in your favor. I do know from an inside source that implementing the new PCOM password security feature required programming acrobatics to fit additional code into memory that was already at capacity. The programmers probably grabbed a block of memory that was previously allocated for displays, so they had to put the display count check rule in place. Joe T.
  2. Yes, you've made that clear. I am curious if other controllers allow you to control socket assignment. A socket can only have one connection at a time. So the short answer to your question is no. I've never tried to assign the same port to two sockets, but it's worth a go. Try putting a Socket Init block in for Socket 0 and set it up as a Modbus TCP Slave using port 502. You'll have to put another Modbus Config block in to support a second SCAN_EX block. I've attached a program demonstrating this. I have no idea if it will work for what you're trying to do. The forum is not Official Unitronics Support. You can also pose your question to support@unitronics.com. Joe T. Dual Slave V570 Test.vlp
  3. The .CFG file you attached didn't have the -B5 in it. I think you can insert the -R2 card between the -R1 and the -R4 but it won't mean anything if you don't have the right code. Have you tried the Upload option? Out of curiosity, what is this controller doing? Joe T.
  4. I don't think any of the moderators have experience with this old hardware, myself included. If support is giving you the cold shoulder then all we can do is collectively noodle on the problem. Aus had an excellent suggestion and it looks like you've made some progress. Following the pattern, I would change the "code of the hw base" to 14 for the -B5. Joe T.
  5. Usually people use an RS232 to USB converter for serial connection. The port on the PLC is set to RS232 by default. RS485 requires a different connection and jumpers to be set in the PLC. Are you sure the PLC is set up for RS485? Joe T.
  6. The onboard high speed counter resets to 0 on power up in all Unitronics PLCs and in the RC15. If you want to retain the HSC value you must copy it continually to a buffer register in the CANbus master PLC. Check to make sure it's not = 0 before copying it to the buffer. You should be monitoring the online status of the RC15 in your master code. Here's an example of how I do it: When you see the RC15 go back online, write the value from the buffer back to the RC15. If you want to describe your application an post both your master and your RC15 programs we can have a look. Joe T.
  7. You've clarified several things about your background and application. Good to know. Auto-tune is not a perfect process wizard. It will get you into the ballpark but you'll need to tweak the settings. I can't say I've spent a lot of time in the ceramic industry, but I did help out the Ceramic Engineering Department at my alma mater with some controls so I now know what S and R thermocouples are. They were nowhere near as demanding as your client. Just to clarify a few things- 1. Is it a 0.5% error margin or a 0.5 degree error margin they get upset about? 2. Is your 4/20 signal controlling SSRs via a PWM control or a phase-angle fired control? 3. You've verified that you are precisely measuring the control signal and it is changing over the very small P band. At this point I'd follow Gabriel's advice and set the D = 0. Increasing the value of I should pull the droop up. If not there's something wrong. There are a couple of functions under FB's->PID Auto-Tune-> Read Control Components and Read Error Integral. Put both of those in your program so we can get some more diagnostic information while the loop is running. Joe T.
  8. Unitronics has not made that product in many years. Reach out to them directly at support@unitronics.com and they many be able to help. Joe T.
  9. From your post I gather that you have your input temperature resolution set to 0.1 deg C. I would seriously consider knocking that decimal point off your temperature. If your input is a type K thermocouple your sensor has +/- 2 deg C accuracy and that extra decimal gives managers something to focus on and get upset about when it moves 0.5 degrees. Everyone expects perfection these days. To answer your question - if this is the resolution of the PV input the the PID block then your P band will be 0.1% times the P value times PV, or (0.001 * P * PV). So at 548.8 degrees C with P = 1 your P Band is 0.55 degrees C. In a PID loop the Proportional band is the first and most weighted component of the equation. Outside the Proportional band the output is either full on or full off. A proportional band of 1 is effectively an ON/OFF control. Changing the I and D parameters will have no effect on the output at this point. Sometimes the Autotune doesn't work. Your loop is drooping slightly. If you want it to go higher you need to set your D = 0, set your P =10, and start incrementing I until the temperature starts coming up. If it starts oscillating double your P value. Are you monitoring the actual electrical value of the 4/20 output signal? If you logic is working with a P value of 1 it should be effectively alternating between 4 mA and 20 mA with nothing in-between. The difference between ON/OFF and the PID you have defined at this point is ON/OFF switches off at the setpoint, PID is switching off at 0.55 degrees below the setpoint. Honestly if you're able to maintain 548.8 degrees at a 550.0 degree setpoint I wouldn't be worrying about it. Joe T.
  10. Submit this problem to Official Unitronics Support at support@unitronics.com. Joe T.
  11. We usually do something like this: With this in the first network of the Main: Joe T.
  12. Information Mode over-rides your program, as you've seen. I generally keep Information Mode a secret from end users. Making your own interface to edit the values in the Ethernet address Memory integers is relatively simple. I usually put that screen behind a password. After editing you either cycle power to for the new Ethernet information to take or put a negative transition on the Display Active it tied to your editing screen. Use that to re-trigger the Card Init block to make the settings take effect immediately. Joe T.
  13. The PLC must be turned on. You can't upload or download anything otherwise. Don't import or export the PLC operands at this point - that's Unitronics' way of describing the actual numerical values in the memory. You probably want to leave those alone. To upload the actual PLC program to the PC you select "Upload". However, as Flex said, if the original programmer did not enable this you won't be able to get the program. You'll probably need to contact the original programmer to get this. Joe T.
  14. The relay closing and opening is considered one operation. Joe T.
  15. Is it 20 separate records or one block of 20? Which version of UniLogic are you using, and could you upload your program? Joe T.
  16. We're not official Unitronics support, but if Unitronics doesn't get back to you right away (it is Saturday) I'd start by downloading the oldest version of UniLogic that you can and starting the firmware update with that. If you go to the UniLogic download area, you'll see a box called "Previous Versions". The oldest one on there is version 1.21.51. I've seen a problem with a UniStream not recognizing cheap USB drives. When you're making your upgrade USB drive, make sure you have a good quality one like a SanDisk or other name brand. It needs to be at least 8 GB. Joe T.
  17. I didn't know your background so I didn't want to start brand dropping. We use Weintek screens as the HMI when we do an Allen Bradley project. We frequently use VNC server and the webserver aspect of UniStream for remote display. Using the Weintek VNC client as you describe is an excellent solution. No programming needed! Joe T.
  18. You're probably right on that. Are other exposed metal parts (typically terminals or lugs) showing signs of corrosion? That sounds kind of specific to Unitronics. Does the customer have PanelViews or other HMIs that do not have the failure mode? If this is a Unitronics problem, we need to bring this up with them. Either way, you have three choices: 1. Remove the controls from the environment by re-locating the panels 2. Remove the environment from the controls by installing an air purge system in the panel to push the gas out 3. Accept that environment tears up your controls and keep spares loaded with the program handy. Joe T.
  19. We ran into this with a customer who wanted decimal pounds or integer grams with the units displayed. I would convert your number into text inside your code and then display a string. Then you can make it look however you want on the fly. Joe T.
  20. The EX-RC1 used the UniCan protocol. The CANbus port can't run two protocols at the same time. Joe T.
  21. The forum is not the Official Unitronics Support channel - it is manned by volunteer users. Send your request to support@unitronics.com Joe T.
  22. Translated - A question.... And how are the sub routines created? I have the same problem every time I try to delete a "hide vars". Greetings While in the ladder editor click this button In the menu you can also Find "Add New Subroutine" under "Insert". Regarding removing "Hide Vars" - anytime there's a little eraser next to the field that's how you clear it Joe T.
  23. Point taken on me modifying the Grafcet. Your drawing illustrates it perfectly. But I modified it to suit my needs as a programmer. My State Machine style grew from my frustration with PLC Direct 400 series Stage Programming (now I'm really dating myself). Each stage was controlled by an S-bit and if you wanted to see where you were in the program you had to pull up a watch window and then remember what stage did what. The bits were in sequential order and if you need to insert another operation between stages then you needed to either re-number all your sequence bits or use a fresh bit that was out of order with the others. The graphical representation of the software at the time didn't like the bits being out of order. Plus, there was a limited number of them. My work these days consists primarily of Unitronics (I am a distributor / system integrator) but also a fair amount of older Allen Bradley. Neither of these has stage programming or is even close to IEC 61131-3 compliant, so the other languages aren't really on the table for me personally. Both brands have ladder. Both brands have Equal and Store (MOV) blocks. Your CODESYS solution with Sets and Resets is only slightly removed from my pointer method, and it uses functions common to all PLCs. Which is good. The main reason I don't program that way is because when you set a bit you have to remember to reset it. A numerical pointer takes care of itself and you can look anywhere in your sequence and see what the value is. It most certainly can. If I've got separate State Machines running in parallel I clean up the code by putting them in their own subroutine that is always called. Each one has its own Idle state, and the Main loop starts them by pushing a value into their pointers, as you did in your CodesysSnippet document. I'm sorry I don't have the magic bullet you're looking for. I can tell you're an accomplished programmer and this is a most interesting discussion. Joe T.
  24. I did draw squares and a circle on it. What would your argument be? For your second question, your solution would match mine. Using the same technique with different pointers, you can step through each branch independently. You set your "step" tag to 99 at I5, which is a holding state for the main loop. Now all you have to do while your main pointer = 99 is have an AND statement looking for each sub-loop pointer to reach its final value. Joe T.
  25. Visilogic installs quite a few examples as part of its install package. In Visilogic they are accessed from the Help menu under "Examples". You'll find Loadcell examples under the Project Examples directory. Joe T.
×
×
  • Create New...