Jump to content

Ziwi

Members
  • Posts

    32
  • Joined

  • Last visited

Posts posted by Ziwi

  1. This is awesome! DS402 is not officially supported in Unitronics, so if you found a work-around, that's golden!

    Do share!

    Well all ready to load up my project, but at 260kb it wont fit in my attachments. Perhaps I could get upgraded to super cool user and get a massive 1mb attachment limit?!! I could delete stuff, but that would make the posts relevant to that obsolete?

    Anyway Tim before you get terribly excited, I did end up using the FHPP protocol instead of 402, mainly because it is easier. The code will look very familiar to you as it is your code!! There are only a few PDO's going back and forth.

    But I did test 402 and was able to hold comms between the Unitronics and the entire EDS range of 402 using SDO. I don't think there is any reason why it won't work.

    I had simulation software for the FHPP that I used to control the servo whilst logging PDO traffic with Canopen magic pro. Then it was just a case of deciphering with manuals etc, and getting the PLC to do the same. It wasn't too painful. FHPP looked to have far fewer commands etc.

    I think the reason 402 isn't supported officially is that there are a few enable/start/run/stop routine's required (or suggested). For Unitronics to claim compliance they would need a custom Function Block. But there is no reason why this can't all be programmed in ladder.

    Unfortunately I dont have the time to do this at the moment, but wouldn't hesitate to specify a Unitronics to 402 device in the future.

  2. Well it seems my dilemna is solved. The error seen happens when the eds file doesn't match the device. (Thanks to www.esacademy.com support)

    Between config, firmware and several resets I managed to get DS402 configured and communicating with the PLC.

    Festo also uses a custom (alternative) protocol called FHPP. Festo tech support New Zealand helped me get FHPP working. Basically "Communication Profile" objects are mapped according to the EDS, but "Manufacturer Specific" objects don't appear to be mapped as per EDS. Fortunately the relevant PDO's are pre-mapped in the drive, and Unitronics Tx's and Rx's these PDO's without problem.

    All of this de-bugging would not have been possible without software such as CanOpen Magic Pro.

    On the plus side it seems that Unitronics can communicate with DS402 and FHPP devices.

  3. Hi Team.

    I'm working through my first CanOpen project involving a safety controller and 4 drive's. 3 drive's are on DS402. I can read and write SDO's until I get to the "manufacturer profile area" at which stage I get "Object does not exist in the object dictionary" (Logged using canopen magic pro)

    Is this a case of Uni not supporting DS402?

    Incidentally the canopen magic pro can't access these SDO's either.

    Some of the DS301 devices are working nicely, PDO's etc. Many thanks to Tim Moulder and Fantasia for their examples.

  4. Hi All.

    I am familiar with Modbus RTU having done a Unitronics to VSD project, and am familiar with CanOPEN having a few systems around the factory. I am doing a new project which is leading towards CanOPEN as it is the most common denominator, although it does scare me a little.

    The fieldbus will consist of 4 servo drives and a safety controller (not for safety comms)

    Basically was trying to get an understanding of comparisons such as:

    a- Speed

    b- Stability

    c- Configuration ease.

    Modbus does seem to be a little slow - in my project using PHR/RHR (3) due to to non contiguous registers, I get R/Write times of 43 ms, adding up to 2 seconds to update 50 registers.

    Thanks

  5. v120-22-UN2 question about wiring an analog input. I know this is basic wiring stuff for most of you guys, but I need help understanding how to wire and address a type k thermocouple.

    on the PLC itself, (I7 I8) and (I9 I10) are dedicated analog input terminals. if I attach each wire from a two wire type k thermocouple to I7 and I8, which one do I use for the input operand address.?

    http://www.unitronics.com/Data/Uploads/V120/V120-22-UN2.pdf

    Page 2, thermocouple's, Note 1 describes the wiring. Jumper settings are laid out on page 4.

    In Visilogic, goto Hardware Configuration, select V120-22 and under snap in select UN2. On the Analog Inputs tab you will have No. 0 & 1. Under type, select T/C type J or K or whichever you are using. Then attach it to a variable MI123, name it something. You can also select a filter to smooth out ripple in the readings.

  6. Not much happens over the weekend here, and you're right about the tone of your first post!

    To answer some of your questions, which are in help, but to sumarise:

    Bits are boolean operators, ie on or off, 1 or 0.

    Integers are numeric values -32768 to +32767

    System Bits and Integers are pre-defined, such as SB3 - I second pulse, SI32 - Current date.

    Memory bits and integers are freely definable by the programmer.

    Here is a screenshot of the simple scenario you spoke of. In hardware config, link the thermocouple input to MI1. Link MI2 and 3 to setpoints on the HMI.

    post-193-010035800 1310952286_thumb.jpg

  7. At the moment I have Display 1 for timer setup/ current countdown and seven displays for each weekdays.

    Using arrowup- and arrowdown-keys I can scroll up and down (monday-tuesday-wednesday an so on)

    My problem here is, that on each display, I have to "type in" ON- and OFF-values before I can jump on next display (day).

    Is there easy way to make it so, I can use Up/Down-arrowkeys to change screens up and down and once I have preferred display on screen, I use Right-arrow to active that day and only then I need to enter new values for that day.

    Hope that above makes any sense :)

    Regards, Janne

    Hi Janne, I know this is a few months old, but there is a better way of achieving the above without creating duplicate screens. SB 39 - See screenshot.

    post-193-080799200 1309904339_thumb.jpg

  8. The rest is PLC programming.....

    No doubt talking to the drives is possible, but the rest of the PLC programming is going to be huge! I do a bit of programming on a 6 axis, and the "world" move feature always amazes me. You can perform RX and RY wrist movements and the tool tip stays in exactly the same spot! I get a headache just thinking about the trigonometry going on behind the scenes. Just doing a simple straight line move involves all 6 servo's...

    Good luck- I would pay good money to see the code!

  9. I' m currently working on a canopen comunication between a XVY Gefran drive and a vison 290. I have been through a lot of trial, search, reading an error. Now I'm able to keep the drive in operationnal mode. That is a lot considering there is no true help anywhere on the matter.

    Hi Teckart, any chance of posting the canopen component of your application as an example?

    It is surprising that Unitronics goes to all the trouble of developing the likes of CanOpen, Modbus UniEDS etc and then neglects to include an example of anything other than Uni to Uni. Surely the time to knock out a few examples would be miniscule in the big picture? Apologies in advance if I have missed them.

    I only really got my head around Modbus after seeing some forum members applications.

  10. Well, other solution is to reduce the wight of the expansion modules, maybe a thin expansion module without screws with 32 inputs with the half size of an IO-DI16.

    I second the idea of having narrow I/O modules, as in the cigarette pack size from schneider, beckhoff and others. These are approx 4 x narrower than Uni ones.

    Our electrician can't figure out why I insist on Unitronics for this reason, and he has a point.

    When you look at the PCB's inside a Unitronics module it seems relatively easy to stand them up on end?

    I think this "simple" factor could lose Unitronics sales over other vendors.

  11. Hi Team

    After sifting through all of the examples and esp some here posted by Ash Neilson and others, I have come up with something that fits my requirements. (Example based on Ash's Step Logic)

    I have had it working for a week now, and ironed out most of the bugs. It is not the most elegant bit of code, but maybe of use to some new players.

    Basically I have 3 SEW LTP motor drives. I am interested in 17 registers - non contiguous. Randomly from 0 -181. So I devised a datatable with Slave ID, Register #, Read Value, Write Value and if the register is writeable. A pointer increments after each read/write operation and then loads up the next values for the next operation. if writeable it write's, if not it reads, and it keeps looping.

    I did have intentions of assigning a priority system - but haven't figured this out. Also in hindsight should have possibly kept the read and write blocks separate.

    Feedback welcomed, hopefully with some more input we could put together a real useful template/example for comms with non Uni devices.

    Attached is the example, you are most interested in the "Modbus Step Logic" subroutine and the Modbus datatable. The relevant operands are MI300-MI399

    I used the datatables in conjunction with excel to edit operand descriptions, and then imported them back into visilogic. (Can't upload excel files?)

    Modbus_Template.vlp

  12. In another interesting development on the subject of excel:

    I used the RTC to UTC function and logged the resulting DW in a datatable which Dataxport imported into excel. (Thanks to Emil!)

    Using a formula in excel and then formatting the resulting value gives the date in date format. (Thanks to a quick google)

    So UTC = 3506338408 Formula is "=(((B2-(12*3600))/86400))" Where B2 points to the UTC cell and "12" is your timezone, gives: 8/02/2011 2:53

  13. What about DataXport? It seems to be built "especially for you"! It's much easier and friendly ot the final user than VisiLogic. If you set DataXport to Listen, PC can initiate the data transfer. Then, the data even can be attached as Excel file and sent to requested e-mails.

    Thats awesome Emil - Thanks for making DataXport "especially for me"! It is perfect, well almost. I have got it working, but;

    Is there any way in which it can overwrite the same excel file with the same file name each log? I see that help says: "Note that DataXport creates a separate Excel file for each data log. "

    Maybe you can add a check box "especially for me" to overwrite file?

    My idea is to use another excel spreadsheet pointing to this one to generate graph's etc, or have a javascript intranet based web page point at one file?

    Thank-you for your help once again.

  14. Hi All.

    Was thinking it would be great if Visilogic could write a .csv file to a network location over an ethernet connection. Similar to how the write to SD works. Any thoughts, can it be done already?

    I am using a shift register to log 5 columns of data in 365 rows on a daily basis (a years history). This data is then reported to management. I know I could somehow use DDE, but I thought this method would be simple (for me!)

  15. Hi, Ofir,

    Thanks for quick reply!

    No, they're not consecutive. Their addresses are: Register1 - 3120, Register2 - 3122, Register3 - 3124, Register4 - 3126.

    And about delay: is there any sense to do delay? I think the bit conditions allow to read next register, only when previous been read? Or I understand not good?

    Is there any reason why you can't pull down 7 registers (3120 - 3126) and just ignore the values of the 3 you don't need?

  16. Hi Olivier

    I have used 2 PID routine's, one heating, one cooling and logic to select which one runs.

    Eg - If in heating mode and PV is above set point for a certain time, switch to cooling mode. My application is a cooling tower for a moulding shop. I have a speed controlled fan for cooling, and a bypass valve for heating.

    Although this system has been working ok for over a year, the changeover - heating/cooling is not a smooth one.

    My new approach is to PID control the fan, then the valve attempts to keep the fan speed within a certain range. So if fan speed goes outside of a wide dead band, make adjustment to valve position.

    I also add a forward feedback proportional value onto the PID CV to give a final CV. This improves control as the cooling tower receives large temp spikes.

  17. If you use the Modbus function blocks you won't have to worry about formatting the data packets or checksum as you describe. The block does that for you. There are Modbus examples that are a good starting point.

    You will have to do your own handling of the commands to each drive, writing a program that will trigger read and write blocks individually and not crashing into other blocks while they're busy. Start by connecting one drive and getting a feel for how the Read and Write blocks work, and then adding the other drives and sequencing between blocks for those.

    Don't forget that Unitronics is 0 based and Modbus is 1 based. If you're not getting the right data, try subtracting 1 from your start address.

    Post your code as you go along if you run into problems.

    Joe T.

    Thanks Joe

    That clears up a few things, will give it a go!

×
×
  • Create New...