What is a THINC app?
In the broadest sense, a THINC app is an application made to run on Okuma OSP-P controls. This is Okuma’s line of Windows-based CNCs.
Even though normal Windows apps will run on the OSP controls, THINC apps are generally built to use the THINC API.
Ok… So what is THINC API?
An API — or application programming interface — that allows applications to interact with the CNC. For example, the THINC API provides methods for an application to read and write common variables, load part programs, read and write tool offsets, etc.
Does my Okuma CNC support THINC apps?
Probably. THINC API is available for the P100 Mk II, P200, and P300 lines of Okuma CNCs. However, depending on the CNC type and spec codes, and THINC API version, certain API features may not be available.
In order to run THINC apps, THINC API needs to be installed. The easiest way to check this is to press Ctrl+Esc (three diagonal lines key on the OSP keyboard) to open the Windows Start menu. Then look for a circular “API” icon in the system tray.
If the icon is present, and green, then THINC API is installed and running.
Will THINC apps run on other CNCs?
Probably not. THINC is a trademark of Okuma America, and THINC API is designed to work with Okuma CNCs.
While it’s possible that generic applications (such as machining calculators) might run elsewhere, the core THINC functionality will only work on the Okuma OSP. Other CNC makers typically have their own APIs.
What THINC apps are available?
Check out the Okuma App Store to see a selection of useful apps for your OSP-P. Any app whose requirements include THINC API is taking advantage of THINC-specific functionality in some way.
Can I create my own THINC apps?
Yes! If your OSP-P has THINC API installed, then you can develop your own apps. In fact, THINC apps on the Okuma App Store are a small minority of the many custom apps that have been developed.
Take a look at the Thincster site for several customized solutions using THINC API.
I have been involved in developing THINC solutions for machine tool setup, tool life monitoring, alarm notifications, and production tracking.
How can I code my own THINC apps?
First, you will need Visual Studio. The community edition is free to download from Microsoft. This gives you a development environment for developing .NET applications.
THINC API is a .NET Framework library. If you are not familiar with .NET, it is a Windows development framework.
(If you are familiar with .NET and curious: to my knowledge, there is no .NET Core version. THINC API also wraps several C libraries.)
Next, you will need a little coding knowledge. You will likely be coding in either VB.NET or C#.
VB.NET is a .NET variant of the Visual Basic language. Visual Basic itself is an evolution of BASIC, a programming language you might have learned if you (like me) used a computer in the ’80s.
C# (pronounced “see sharp) is a .NET language with C-style syntax. It is a preferred language for .NET coding, so you will often find examples in this language.
Finally, you will need the THINC API and associated documentation. This is available on the Okuma America GitHub. Examples are also included in multiple programming languages.
What if I can’t / don’t want to develop the app myself?
Contact your Okuma distributor. Describe your requirements to them, and they will likely be happy to provide you a quote for developing your THINC app.
Some distributors have developers with THINC API experience on their staff. Others may turn to Okuma America or other THINC developers (such as me).
Working with your distributor may be especially useful, though, if the app is intended to integrate with other projects the distributor is working on inside your shop. If the distributor is already familiar with the requirements, and can anticipate integration problems, this can lead to a smoother development process.
What are some limitations of THINC apps?
To answer one common question, commanding a “cycle start” is not possible by default in THINC. This is not a technical limitation, but is done for safety.
THINC apps can run on older OSP controls, as far back as the P100 Mk. II. These older controls had limited CPU and memory resources — and remember that realtime machine control takes priority over Windows apps such as THINC apps.
THINC apps are not meant to deal with hard realtime monitoring. In fact, the documentation even cautions not to try to poll THINC API for updates faster than once per 100 milliseconds.
Why doesn’t my THINC app work?
Stupid question #1: Are you running it on an Okuma OSP-P?
Stupid question #2: Is THINC API installed?
One common problem is a .NET Framework version mismatch. This happens if you build targeting a .NET Framework version that is not installed on the OSP. This can be fixed by changing the Target .NET Framework in your project (if you are building it yourself), or installing the required version of .NET Framework (if you are using an application that you didn’t build yourself).
If you are running the THINC app at startup, it is possible for the app to run before THINC API is ready. Instead of running at startup, you should run the app through a service called the THINC Startup Service.
How can I test a THINC app?
Fair question. If THINC API only works on an OSP control, how can you test it on your development machine before you deploy?
One option is to test it on the OSP. If your machine shop is small and has a lot of downtime, then this might be practical.
Okuma America does make simulators available on an as-needed basis. Software simulators are PCs installed with OSP simulator software. NC-Masters are bulky hardware simulators that include a full OSP control panel. Gaining access to these is entirely at the discretion of Okuma.
What I have seen a few THINC developers do is to create a mock THINC API library (with varying degrees of sophistication). This mock library mimics the THINC API well enough to build a THINC app, and do some limited testing prior to deploying to the actual OSP.
Ultimately, though, you will eventually have to do some testing on the actual CNC.
Must my THINC app run on the OSP-P?
Yes, in the sense that THINC API is a local API. It is not accessible over the network, so your THINC app needs to have a local component.
Kinda, in the sense that the local component can just be a server that provides access to the off-machine portion of your THINC app.
Okuma does have a remotable wrapper for THINC API, but from what I’ve seen, most THINC developers will go the route of creating a server that provides only the access they need for their own app.
My question wasn’t answered here.
Ok. Leave a note in the comments and I’ll try to answer it.