Jump to content

Dave

Members
  • Posts

    113
  • Joined

  • Last visited

  • Days Won

    9

Everything posted by Dave

  1. I experienced a somewhat different problem with the same version( 1.32.98.0)...with my program change a reset was required, but the download dialog box did not indicate it. I'm wondering now if it is a glitch in the software
  2. try assigning an IP address (from the PLC physical communications tab, such as 10.0.0.61) to your CPU and see what that does for you.
  3. You do not need the Scanner Node1 for the URB. If your URB has the same IP address as that scanner node, that may be causing a problem. Get rid of the scanner node 1 in the configuration and then monitor the I/O. In your photo, the Unilogic is not online, so I can't see if the input is on or not.
  4. Disregard my previous question...I found that the User Access Control in the PLC was not being overwritten when I did a Full Download, or Full Download w/Upload and selected the "Download" button. I had to select the "Download/Reset" option (even though the differences dialog box showed that a reset wasn't required), in order to get the "overwrite user access control?" check box option. After I did that, everything checks out just fine.
  5. I have a USP-070-B10 with USC-P-B10 cpu. My program is finished and works fine, however when I run the Verify feature in Unilogic, I get a message that the application in the PLC is not an identical match to the one on my laptop. I have done a Full Download and a Full Download with Upload, immediately verify once complete and I still get the same result. I have cycled power to the PLC and still get the same result. Everything works fine, but I would like to find out what is different between the two....any ideas where to look? I'm using Unilogic version 1.32.98
  6. I have this problem with all of the unipics.....I have to change the background colour of the screen to "hide" the square border
  7. hmm. interesting thanks, I'll take a look at that
  8. Does anybody know of a way to indirectly specify the data table to read/write to? I have 10 data tables(10 rows, 5 columns each) that contain parameters for operation. The data tables are selected based on client's current program#. I currently compare the program# and create 20 rungs of write/read logic. It would be much cleaner to create 2 rungs (1 read, 1 write) using an indirect data table specification. If its not possible, perhaps it could be made possible in a future release?
  9. You could try using the DataSampling function, found in the Solution Explorer
  10. Good catch indeed. I was in the process of duplicating the logic and wasn't having any issues...but i didn't even notice the coils instead of contacts and used contacts in my version. I guess my brain just interpreted the coils as contacts.
  11. You can assign a tag to the "Is Active" property of each screen. Then use that tag to trigger an action, defined in the Actions section of the Solution Explorer
  12. It's what I call brute force programming, but you could have multiple numeric boxes placed on top of each other, each with different fonts/background. Then use ladder logic to control the visibility of each box based on the current value.
  13. Hi curtharrington1. Although its not directly from the ladder, from the project solution explorer, you can create an Action (Safe Remove DOK) that executes the safe removal of the USB device(DOK, stands for "Disk On Key", from what I'm told). I haven't used the Action, so I can't help with exactly how the PLC handles it. The trigger for the Action must be linked to a SET coil in your ladder....it will be automatically reset after execution of the Action. (not sure if the coil resets if the device isn't physically removed) hope this helps
  14. Just a follow up on this....tried again with the suspect panel in the shop, with new CPU & URB. Sent it back to the distributor, who tried upgrading the firmware and got the same issues. The unit was returned to Unitronics and it was replaced under warranty, but no actual root cause was ever given.
  15. If you don't need high precision, you could use the status of the monitored bit in series with a rising edge of the frequency.frequency 1 (s) tag to increment an integer. This would give you a rough value in seconds how long the bit was on. Store the integer value(and perform conditioning/formatting first, if needs be) in "logging" struct. Use the falling edge of the monitored bit to reset the integer to zero You could use the frequency.frequency 100 (ms) to get a bit more precision. The output of an accumulating timer TA, turns ON when it reaches zero, while the input is still ON(starts counting on the rising edge of the input). You could use that bit to reset the timer. Once the output turns ON, it stays ON, even if the input trigger turns OFF.
  16. Hi Gary. Had a look at your code. Here's what I see so far... The struct you are using to write to the data table doesn't match the format of the data table struct. They must match exactly, the format of each member of the struct, and the order of the members in the struct. I don't see any code that loads the user name into the "logging" struct. The user name is found in the User Access Control struct, and its data format is String-UTF-32. You will need to change the format of the username in the data table struct to match(its currently set to String-ASCII) Also found in the User Access Control struct, is the Event Update Bit . You can use this, along with the Event Type tag, to monitor when a user has logged in or out. The Event UTC, also found in the User Access Control struct, contains the timestamp of the event. The help file has a pretty good description of these tags. I haven't used the Event UTC tag, so I don't know what it looks like, but I'm guessing you may have to do some conversion to get it to a format of your choice. If you are OK with the format as is, then just change the data format of your LOGIN & LOGOUT tags to UINT32 and add some code to load the Event UTC timestamp into the logging struct. Keep in mind that any time the Event Update Bit is set, you must manually reset it with your code in order to be able to capture the next event. Not sure why your complete data table is not getting sent to the SD card. What is the Status code of your Store DTI function when you execute it Looks like you are almost there. Hope this helps.
  17. Hard to help without seeing your logic so far, but here goes anyway.... The data types you are trying to write to the table must match the data types set-up in the Data Table columns struct. For the User name and login, logout times, you can use the event tags in the User Access Control struct to detect each time a user logs in or out. There will be some code required to save a "TimeStamp" to each event The instructions used differ, depending on the type of data table created. If you are using an indexed data table, the easiest way is to use the insert row instruction. The existing data gets pushed down a row and the new data writes to the row number defined in the instruction. If you always insert at row 0, the table acts much the same as a FIFO table, deleting the last row of data(first-in) once the table is full. To save the table's contents to SD card, use the Store DTI to File instruction. That instructions gives you some options such as whether to overwrite the file, append to the file, row # to start from and whether to create a .csv file, .csv-zip file, .udtf file or all types.
  18. Hi Jose. I'm not quite sure what the question is. When you added/configured the URB-TCP in your project, each I/O module attached to the adapter would have needed to be added to your project, in the Hardware Configuration section. When this is done, the structs are automatically created for each I/O module. The name assigned to each module is the model#, followed by the physical position occupied. For example, if you have 2pcs of URD-0800 occupying the first two positions to the right of the adapter and 1pc of URD-0008CH in the third position, the I/O structs would be created as follows: URB Adapter1_Inputs.URD-0800_0[Input0 to Input7] URB Adapter1_Inputs.URD-0800_1[Input0 to Input7] URB Adapter1_Outputs.URD-0008CH_2[Output0 to Output7] (The first position to the right of the adapter is zero) You can edit the Alias and Description for each I/O point, but you cannot change the name. You should not need to manually create any structs for the I/O.
  19. I played around a bit with the drawing tools and came up with a reasonable solution. Have a look at the attached program.(I used a USP-070-B10, with Unistream version 1.30.58) I originally had the circle position updating every scan, but the screen refresh rate could not keep up, so I changed it to update only when the X or Y position values changed. I linked two sliders to the X & Y position tags in the circle struct that was created when I defined the shape tag for the insert shape instruction. It's a bit rough around the edges, but should give you an idea of how the drawing tools function. PositionTracking.ulpr
  20. I believe you can use the INSERT SHAPE instruction, found at the bottom of the Ladder toolbox, under Drawing. I have never used this, and can't find any help or examples, but when I hover my mouse over the input tag, B, it prompts me to enter the "shape struct". This leads me to believe that you must first define a shape and then create a struct that would include X,Y coordinates. Once you have that struct created, you should be able to manipulate the coordinates based on your laser sensor readings. If anybody knows where to find an example or instructions for creating shape groups and structs, I would be very interested to see that. update... I just tried inserting that instruction and when I create a new tag for each input/output of the instruction, there is a brief description of its purpose/use. There are 3 types of shapes available...line, circle & rectangle. The shape struct is automatically created when you according to the shape type selected when you create the tag. the circle struct, for example, has Thickness, Color, X position, Y position, and radius. Well, I tried a few attempts, but I think I need some more info on shape group ID#'s, and color settings. I managed to get the instruction to execute without an error code, but nothing shows up on the screen. Dave.
  21. You could create two same size buttons and place them one on top of the other. Create the message box only for the "ON" button ...Display the "ON" button only when the heater is OFF., and display the "OFF button only when the heater is on.
  22. I was a bit surprised that when I first swapped the CPU out for a new one, the program was still intact when I powered up. I thought the program/configuration would reside in the CPU, but I guess it actually is stored in the panel. When I swapped the panel next, and used the original CPU, then I had to do a full download to restore the program. I wonder why the back-up battery is in the CPU and not the panel? Oh, and the URB-TCP is only about 6 ft (maybe 8-10 ft of cable) away from the panel. I did have a look at the battery status bits, but that was after a "mis-boot" and all the system bits were showing zeros. With the original CPU and new panel, the operating parameters for the equipment are being retained through power cycles, so I am guessing the battery is OK I still have the suspect panel and I think I will power it up back at the shop with a new CPU /URB-TCP, and see what happens. It sure does help to have extra hardware around for this type of troubleshooting. dave
  23. Yes Ausman...many of my customers do indeed abuse their equipment, but in this case, they are very good at keeping enclosures closed and they regularly clean the equipment. While the glitter is everywhere on the machine itself, I found zero signs of debris in any of the electrical enclosures. I had a CPU and panel brought in for another project, so I tried swapping out the CPU today...same problem occurred. When checking on-line status of the system tags, I found that all numeric values were 0 and text values were "", empty quotes. (at least all the ones I looked at) Then I swapped out the panel, using the original CPU, and the problem went away...so far. The client said that while it was intermittent at the beginning, as of last week, it was occurring almost every time they cycle power. They power off during every set-up change(as many as 2 or 3 times a day), as part of their safety procedure. I cycled the power three times today and had no issues. I will give them a couple of days and if the issue has been resolved, I will send the panel back for warranty evaluation.
  24. I believe you need the CPU in order to have it auto connect. With no CPU, someone would have to manually make the connection after each power up.
  25. I don't have the go ahead yet, so I'll wait for the new releases for now. Should I receive a PO. soon, I will take you up on your offer. Thanks,
×
×
  • Create New...