<img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=943318709180007&amp;ev=PageView&amp;noscript=1">

Gosiger News

Remote Offset APP Demonstrated in New Gosiger Video

October 3, 2013

describe the imageGosiger Controls Specialist Jon Weaver shot this video of a Remote Offset application developed for a Gosiger machining cell customer. Using the Okuma Application Program Interface (API) that enables programmers to create Windows®-based APPs for the Okuma OSP operating system, this program provides the cell operators an easy way to adjust tool offsets from outside the cell.

Read More

This Video Demonstrates a Custom APP For an Okuma OSP Controlled CNC Machine

August 6, 2013

describe the imageIn this brief video, Gosiger 3-D Applications Engineer, Brian Stall, shows a custom APP designed by Gosiger’s Aftermarket Support Department. This APP is an example of the possibilities inherent with the Okuma THiNC API (Application Program Interface). Gosiger engineers have developed a number of APPs to meet customer requirements. Machine users can also create their own custom APPs using Visual Basic.

Read More

Video: Programmable Steady Rest APP Saves Operator Time

June 28, 2013

VideoThis video explains how a Gosiger-developed aftermarket steady rest interface with an integrated operator control panel allows the CNC machine operator to control and monitor the steady rest, and provides program setup without switching screens.

Read More

Keeping Your Smartphone Data Secure

May 31, 2013

describe the imageMost business people rely heavily on their smartphones and tablets to help manage their personal and business lives. Which means that we use these devices to transact banking business, make travel plans, send and receive emails, access the Internet and social media sites and even transfer CAD drawings and other customer information. So anyone who gets their hands on the phone, itself, or hacks their way in has access to data that can cause us a world of hurt, as anyone who’s had a brush with identity theft or industrial espionage will tell you.

Read More

Mobile Apps Save Manufacturers Time & Money

February 6, 2013

Gosiger Mobile AppBy now virtually all businesses have discovered the value of mobile devices to their daily operations – and manufacturing is no exception. Manufacturing-related apps for smart phones and tablets continue to proliferate for iPhones, iPads, Android-based and Windows-based devices. Here are just a few manufacturing apps that have recently come to our attention.

Read More

A Better I/O Monitor

October 31, 2012

For years I’ve been wanting to create a more user friendly I/O monitor application for the P control.  If you’ve ever tried to quickly look up a signal on a machine you know what a  pain in the neck it can be.  If you don’t happen to have all of the signals memorized you either have to page through the slaves in physical mode or go find the electrical drawing.  Oh, and don’t forget the search is case-sensitive.  So I decided to make my own just for fun.

My Goals for the Project Are that the User Can:

  • Search either comment or symbol name
  • Search non case-sensitive
  • Use it on any Okuma machine or off machine
  • Carry it around on a memory stick (no installer)
  • Add signals to a watch list
  • Sort signals by type
  • Save watch lists to an XML file (Chris Heeg’s idea)

Getting the Signal Info

There is no way to get the names of all of the signals on the Okuma through the API. there is also no way to read the status of an I/O signal by the symbol name.  A generic set of I/O names won’t work because the mapping of the I/O signal addresses change from model to model.  The around this problem is to use the IOTXTOUT.EXE tool to generate a CSV file.

Dim args As String = String.Format(” /L /B /File=”"{0}”"”, _tmpFilePath)
            Dim txtIOProcess = Process.Start(“C:\OSP-P\TOOLS\IOTXTOUT.EXE”, args)
            If Not txtIOProcess.WaitForExit(30000) Then
                txtIOProcess.Kill()
                Throw New TimeoutException(“Timeout waiting for IOFile generator”)
            End If
            txtIOProcess.Close()

This command will generate a CSV file with this format:

Date=20120928,Time=080854
ID=IX Logical Input
Addr,Bit,A,Msk,St,Label,Comment
0,0,,,0,ipNCST,NC start ..PB
0,1,,,1,ipNTS_B,NC feed hold/ .PB

As you can see the top of the file contains a timestamp followed by a section header, in this case inputs, followed by the column headers.  The columns we care about are the Address(Addr), Bit, Logical/Physical(A) , Label and comment

Parsing the Data

Now that I had the data I wanted to find a way to quickly search this file to pull out the information needed.  There are a few different ways I could have gone with this and I’m not sure this is the best but I decided to use Matt Perdeck’s cool LinqToCSV libray.  This allowed me to write LINQ queries over the data in the CSV file.

Before I could use LINQ to query the data I had do clean up the CSV file.  The first problem is that the file generated by the IOTXTOUT tool prints out a line for every potential I/O point not just the ones which are mapped. As a result at least 50% of the lines contain no useful data. As this will inevitably slow down any query I wanted to remove all of the blank data lines.  The other problem is that the tool generates section titles and headers for each type of I/O so I also had to remove them as well.  The LinqToCsv has no idea what to do with column headers which show up in the middle of the data.

Based on the columns in the CSV file I created a class which mapped the columns of the CSV File using Property Attriubtes.
<CsvColumn(Name:=”Addr”, FieldIndex:=1, canBeNull:=True)>
    Public Property Address As Integer?
I then created a CsvFileDescription which describes the CSV file:
 _inputFileDescription = New CsvFileDescription() With {.SeparatorChar = “,”, .FirstLineHasColumnNames = False, .EnforceCsvColumnAttribute = True}
With this in place I was able to read the data by passing in a path to the clean CSV file along with my description object

rtnIoList = _OkIoContext.Read(Of OkumaIOPointInfo)(FilePath, _inputFileDescription)

Now after all this the the end result is that we can do queries like this on our data:

Dim InputsThatContainDoor = From iop In _IOList
Where iop.Comment.Contains(“Door”) AndAlso iop.IOType = 0
Select iop

Making it Machine Type Neutral

To make the application machine type neutral, meaning it can run on any Okuma machine, I implemented the factory pattern I described in previous post.
The interface is very simple.  It describes a function to get the status of an I/O signal, a function to get the machine type and a sub to handle closing.

Public Interface Iokuma
Function GetIoBitStatus(Signal As OkumaIOPointInfo) As Boolean
Function GetMachineType() As enumMachineType
Sub close()
End Interface

I have 3 classes which implement the IOkuma interface.  One for  a mill, one for a lathe and the other for off machine simulation.  This allows me to program against the IOkuma interface on the MainWindow rather than creating a new Window for each of the three scenarios.

WPF Databinding

The only other somewhat interesting about the application is how I was able to use WPF’s Databinding to display the I/O status.
In Visual Studio 2010 if you add an “Object” data source and point it at a class in your project you end up with a CollectionViewSource in the Window.Resources.  I bound the ItemsSource of a ListBox to this collection.  I then used a User Control (uc_IoPoint) to display the name and the status of the signal in the Listbox.

<ListBox x:Name=”lbIO” HorizontalAlignment=”Left” Width=”393.183″ ItemsSource=”{Binding}” Margin=”0,0,10,5″ VirtualizingStackPanel.IsVirtualizing=”True” SelectionMode=”Multiple”>
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel>
<local:uc_IoPoint Margin=”5″/>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>

Making it Portable

I attempted to use the Costura VS addin to embedded all of the required Dll’s into the exe.  For some reason the Okuma Dll’s refuse to be loaded from via stream.  If anyone has any insight on this I would be very grateful (test project).  I would eventually like to get it down to a single file executable.  For now it is the Okuma IO.exe and the Okuma DLL files.

Read More

Gosiger Has An App For That

August 29, 2012

Machining Apps 3One of the outstanding but often overlooked benefits of the Okuma THINC OSP control, is that users have the ability to develop custom software applications in Visual Basic that can save a great deal of time and labor.

Read More

Gosiger Releases Mobile Service App

July 17, 2012

To better serve customers, Gosiger has developed and released its mobile service app for iPad, iPhone and Android.

Read More

3 Reasons Your CNC Machine Shop Needs an iPad

March 13, 2012

Machining Apps 3Conceived as a personal gadget for Internet access, e-reading, playing games, and managing music, photos and more, iPads are now finding their way into the business world. But do they belong in a manufacturing setting? They just might. In addition to tens of thousands of apps, the iPad’s size, lightness and instant-on capability make it more convenient than a typical laptop, and easier to protect from harsh environments. There are several ways machine shops can use iPads to improve productivity. Here are three:

Read More