Jump to content
  • entries
    10
  • comments
    27
  • views
    21,577

About this blog

A place to share useful code modules

Entries in this blog

 

CanOpen and the things that creep up on you

So after a lengthy wait, I finally got the go-ahead to execute my long awaited CanOpen rebuild project in November. I can't go into the details of the machine itself, but I wanted to share a few critical learnings from contending with it during the installation and commissioning. 1. AC Tech Servo Drives - worked like champions, but I ran into an issue with the OEM limit switches. These were two-wire proxes, and leakage current wrought havoc on my sensitive new drives. This was addressed by

tmoulder

tmoulder

 

Thoughts on Linux

Like alot of people, I still use Windows XP for running my work-related programs. I know, lost in the 90's, but it works well for me. About a year ago, I had a PC crash that set me back severely. I didn't lose any data - for years now, I've kept all my project data in a single folder, and copy-pasted to my backup hard drive regularly. However, it took three days to reinstall all the software after I recovered the PC. That got me thinking - there's got to be an easier way to do this. As the

tmoulder

tmoulder

 

Motoman CanOpen Example

Greetings all! Motoman is a Yaskawa-based robot company that offers CanOpen as one of their protocols. The documentation for their card is good for the wiring and installation of the CanOpen adapter card, but documentation about how the robot interacts with the card, and how CanOpen commands are processed is non-existent. Literally, it doesn't exist. I've begun a project requiring interfacing a V570 to a Motoman robot via CanOpen, and the attachments here cover my findings. There's an examp

tmoulder

tmoulder

 

Analog input resolution, scaling and protection

Caution: This approach can be risky. Analog voltages greater and 15 VDC can fry an analog input on an E1B module. Use with caution, and at your own risk. I had a project where I needed to use a potentiometer with an E1B snap IO to measure an angular position. The problem I ran into was resolution. With 10 VDC applied to the pot, and the E1B resolution of 1024 units for full sweep, the portion of the pot I needed was only seeing 22 units. I had an idea - I put full 24 VDC to the pot, then

tmoulder

tmoulder

 

CanOpen Basics

As a supplement to the example program I posted earlier, I've put together this PDF guide. It explains how the program operates, and goes into some light detail about CanOpen itself, as implemented in Unitronics. Hopefully, it will help give the new CanOpen-er a boost in the right direction. Like everything in this blog, this is open. If you see a correction or think something needs covered that isn't, let me know and I'll add on to it. Hope it helps! TM

tmoulder

tmoulder

 

Wago 750-307 CanOpen Node Example

Notice: This is an example program, instead of an importable module. The way CanOpen is confgured in Unitronics makes an importable module for this impractical. The program is an example of communication with a Wago 750-307 IO node. The node I used to develop it has 16 digital inputs and 10 relay outputs. Refer to the documentation of the node to see how to set the Unit ID for the node, the program looks for node 1. I designed the NMT section of the program to mainly to handle automatic la

tmoulder

tmoulder

 

Simple 1-Node Modbus TCP Master

This is a little Modbus routine I wrote to connect to one remote node, in my case a Dalsa IPD vision device. It's not designed to connect to several devices, just a one-to-one such as my camera setup, a single servo drive or VFD. As such, it is really optimized for maximum communication to that single device. The module reads the vector of addresses from the slave constantly, as fast as possible. Writes only take place when a value in the Tx Vector is changed. So the PLC always has the fres

tmoulder

tmoulder

 

Simple Alarm Module

Unitronics has provided us with a powerful and comprehensive alarm system built into the OS. It provides grouping, status conditions, and pre-made screens to interact with. It's a terrific piece of work, and I do not wish to detract from it one bit. That said, it's also complex and can be tricky to set up. The vast majority of my projects don't need anything that sophisticated. So after several years of working on my own technique, I finally came up with a module that matches just my needs,

tmoulder

tmoulder

 

The ubiquitous Buffered SD

Greetings all! This program has been floating around in a couple of forms since before Christmas. Essentially, it is a program to create a CSV file on an SD card, and incorporates a data table as a buffer to prevent data loss if the card is removed, or writes come in too fast. This latest revision includes logic to create column headings at the top of the spreadsheet automatically when a new file is created on the card. Instructions for use and importing into an existing project are in the R

tmoulder

tmoulder

 

FOSS Logic

Lately, I've been twiddling around with Linux, and learning about it's history. I've been extremely impressed by what a group of people can accomplish with some collaborative effort and a willingness to share that effort. I'm no PC programmer, but I am a PLC programmer, and over the years I've developed a number of importable code modules I use in my programs. In the spirit of shared effort, I'm going to make some of these modules available to the forum. These are modules I've personally use

tmoulder

tmoulder

×
×
  • Create New...