Jump to content

Flex727

MVP 2023
  • Posts

    3,275
  • Joined

  • Last visited

  • Days Won

    239

Posts posted by Flex727

  1. It's somewhat poor programming practice to place coils in series, and even worse to place a coil in the middle of a series of contacts. One of the nice things about Visilogic is that it allows for a great deal flexibility in this regards and will work properly even when poor programming practice is used.

     

    I would separate out the logic for better readability and troubleshooting, as follows:

                                 A      B

    ----|/|----| |----|/|----(  )----(/)---- should be broken into two nets like this:

     

                                 A

    ----|/|----| |----|/|----(  )----

     

         A      B

    ----| |----(/)----

     

    And ----|/|----(  )----| |----|/|----(/)---- should be broken into two nets like this:

     

    ----|/|----(  )----

     

    ----|/|----| |----|/|----(/)----

     

    Done in this way the logic is clear and unambiguous.

  2. I have a V570 PLC out in the field that needs to have some code updated. The original project, which I have, was generated using Visilogic 8.6.3. The firmware on the PLC is the firmware associated with Visilogic 8.6.3. I am currently using Visilogic 9.7.9 and no longer have 8.6.3 installed. Can I update the code in Visilogic 9.7.9 and generate a .V57 file to be delivered via the SD card, or do I need to re-install 8.6.3 to ensure compatibility with the older firmware?

  3. I recently completed my first project with the Samba and was surprised at how limited the memory is. Just a little bit more would have been very helpful, but I took it as a challenge to get all the essential information on the screen while staying within the limitation. This was actually for a small machine (an air compressor), but the customer wanted various statistics and a log file to be displayed on screen. I really had to rework the User Interface I normally use for the V570, but I got it done and I'm pretty pleased with the result - and more importantly, so was the customer.

  4. It is bad programming practice to put instructions together in the same ladder rung that aren't conditional. The only real exception would be when you have a coil that must be activated by multiple situations, since coils should always only exist in a single net.

     

    When you have an unnecessarily complex net, you run the risk of unpredictable results due to the compiler organizing the instruction differently than you might have expected.

  5. Just to make sure it's clear: You have two choices when communicating with four other devices over Ethernet. You may either: 1) connect to all four simultaneously using four different sockets, or 2) connect to each device sequentially using a single socket, connecting and disconnecting each time you transfer data.

     

    For #1 you will have separate ladder rungs with four Socket Initialization function blocks, four Configuration function blocks, four Connect function blocks, and four Read and/or Write function blocks.

     

    For #2, you will only have one of each, but the IP address must be indirect (using 4 MIs). You must load the IP address into the MIs, execute the Configuration block, execute the Connect, do the Read/Write, then disconnect and repeat for each of the remaining three devices.

  6. Unitronics Support was able to answer my questions and I have finished my first project using the new Samba. Because we wanted to get a little experience with this PLC, we decided to use it for an in-house project we've been wanting to do. The Samba PLC will be controlling two air compressors and monitoring their operation to avoid problems we've had in the past with the compressor motors running until they burn up when some problem occurs such as belt loss or loss of pressure.

     

    My problem was that I initially tried programming the PLC like a slimmed-down V570 (since it has a 320x240 color touchscreen, just like the V570) instead of like a souped-up Jazz. I was able to work around the memory limitations and ended up with a minimalist, but very functional controller. The program has 6 screens, including a Main informational screen, vital statistics screen, Log screen, a Configuration screen, a Password Login screen, and an Installation screen to allow ease of initial setup. The program monitors two analog pressure sensors and appropriately controls two compressors with alarms, notifications, and logging. It also includes programmable timers to allow operation only on weekdays and/or during normal working hours. I'm pleased with the result and also pleased with the new Samba.

  7. I've been working with Unitronics PLCs for nearly 5 years and one thing has always frustrated me - all 3 timers decrement. When I want to have a simple display of elapsed time (e.g. the time a valve has been open or a pump has been running), there is no simple way that I can see to display that information without a lot of convoluted ladder logic. Have I been missing something all this time?

     

    Experienced Visilogic programmers: surely you have this same need from time-to-time - how do you approach it?

  8. I'm currently working on a project that I thought would be ideal for the new Samba PLC. Unfortunately, I'm finding the memory to be shockingly limited and can't seem to easily work around it. This project has 13 screens (many of which are still empty since I've already exceeded the allowed PLC memory). When I run the "Projected Memory Map", I see that the vast majority of the memory is being taken up by "HMI Variables", but I can't get any information within that to tell me where the problem might be. Which "HMI Variables" are the most likely to use large amounts of memory? How can I find which elements are causing problems?

  9. I have one more question. I was surprised to find that I couldn't change the HW configuration from a V570 project to the Samba since they seem to have the same HMI attributes. The error message said they had different capabilities (or something similar). Can someone briefly list the major limitations I should expect to encounter while programming a Samba versus what I'm used to with the V570? Thanks.

  10. However, we use Allen Bradley PLCs on all of our machines, so we are currently not able to communicate. We rely heavily on Ethernat/IP.

     I regularly use V570s and V1210s that must communicate with each other and customer SCADA systems and customer PLCs that are not Unitronics. I typically use MODBUS IP over Ethernet and it works very well.

  11. I see what happened - the file was too big, but it was only 50K. Any idea why I'm limited to a 11.04KB file size on uploads? Almost anything reduced to that size is unusable.

     

    I can't upload the applications without going back and re-creating the whole event and I really don't have time for that. The main issue is that VisiLogic refers to Data Table column internally by something other than the name of the column and there is no indication that is the case when the programmer is working with VisiLogic. If a Data Table is edited such that columns get re-positioned, but everything looks identical to the user, some functions will not work as expected (such as copying the Write Row to Data Table function block from another program with a seemingly identical Data Table.

  12. I ran across an interesting problem today. While I was able to figure it out and correct it fairly easily, I think it points to an underlying problem with how VisiLogic is dealing with Data Tables. Here is what happened:

     

    I have a project I was modifying for another use. In it I have a Data Table with 3 columns. Part of the project modification involved editing column 3 and adding a column 4. In another project I had already made a similar modification and had some logic to write data to the modified Data Table, so I copied the logic from the second project to the first after modifying the Data Table in the first, but the Write Row to Data Table function block reversed the last two items. I confirmed that the Data Table in both projects had the exact same name, exact same number of columns, each column had the exact same name, and each column was of the exact same data type, but no matter what I did, copying the function block inexplicably reversed the last two items (NAME and EVENT columns in the attached picture).

     

    The problem turned out to be that when I edited the Data Tables in the two different projects, I went about it very slightly differently. When I inserted a column in one of them I did "Insert Before" and in the other I did "Insert After". That had the result that Visilogic identified them internally as reversed and thus reversed the columns in the Write Row function block. There is no external indication that VisiLogic is using some other method to identify columns other than the column name, but it does. In my opinion, this is poor programming practice - if VisiLogic is going to identify the columns by something other than the assigned column name, then it needs to be indicated and that is the indicator that should be selected in the Write Row function block (labeled "Destination (Cell)".

×
×
  • Create New...

Important Information

This site uses cookies. By clicking I accept, you agree to their use.