近年産業用機器の制御装置にパソコンが広く使われています。パソコン技術はグローバルスタンダードなので、これを用いた製品の製造やシステム導入に伴う人・物・金・時間面でのコスト低減が可能です。さらに製品およびサービスの品質安定が期待でき、技術的進歩にも容易に対応できます。
INtimeはパソコンを産業用制御に利用するためにリアルタイム性と信頼性を提供するソフトウェア製品およびサービスです。INtimeはWindows OSと共存するのでソフトウェア・ハードウェア両面で使いやすく、将来的にも安心して使えます。

時間保証された処理(determinism)
産業の自動化と制御
高信頼、堅牢な処理

ハード
リアルタイム

高効率
監視とデータ収集
実績済みリアルタイムテクノロジー

INtime

割り込み型・プライオリティベースマルチタスク

通信とネットワーク
比較的安定性のある操作ソフト
リアルタイム
事務処理

Windowsファミリ

接続性・ネットワークサポート
標準的で強力なGUI

図1. INtimeリアルタイム機能

特徴
非リアルタイム
アプリケーション

Win32
API

リアルタイムアプリケーション

NTX
API

INtimeAPI

NTX

INtimeカーネル

Windows

Windowsカーネル
HAL

PCハードウェア

図2. INtimeのアーキテクチャ● Windows 2000/XP/Vistaと協調動作● Windows XP Embedded対応(SLDファイル)● 豊富なリアルタイムスケジューリング
・256プライオリティレベル
・アプリケーションプログラムとしての割込みハンドラー(APIC,MSI対応)
・マルチプロセス、マルチスレッド機能
・多彩なシステムオブジェクト(メールボックス、セマフォ、アラーム、リージョン、共有メモリ)● マルチコアでは共有モード/専有モードの選択が可能● Windowsなしでも動作可能● Microsoft Visual Studioの開発環境と統合(Visual C/C++)● iWIN32によるWindowsプログラムのリアルタイム化● ユーザーモードによる完全メモリ保護、アドレス分離● ソースレベルのダイナミックデバッガを標準装備
・OSを止めずにデバッグ可能
・WindowsとINtimeのアプリケーションを同期デバッグ● リアルタイムTCP/IPドライバ＆ライブラリ標準装備● 産業界で実績のあるリアルタイムテクノロジー(iRMX)

INtime■

INtimeの仕組み■

INtimeシステムでは一つのCPU上でWindowsとINtimeリアルタイムカーネルが同時に動作します。WindowsとINtimeカーネルの切り替えはPentiumプロセッサーのハードウェアマルチタスク機能で実現していますので高速です。
INtimeでは各々のスレッドは256レベル、Windowsスレッドは32レベルの優先度で管理されています。Windows全体は254番目のプロセスとしてINtimeが管理するので、Windowsの動作の都合によりINtimeスレッドのリアルタイム性が損なわれることはありません。
INtimeアプリケーションはWindowsアプリケーションと同様にリング3のユーザーモードで動作するためメモリ保護・アドレス分離が有効に行われます。

VB , VC/C++

VC/C++

非リアルタイムアプリケーション

リアルタイムアプリケーション

Win32 API

リアルタイム API(INtime API,iWIN32 API)

ユーザーモード
カーネルモード(リング3)(リング0)
highestINtimeカーネルhighestWindows

Windowsタスク

lowestlowestリアルタイムタスク

Windows
INtimeプライオリティ プライオリティ

アプリケーションインターフェース● メールボックスによるデータ交換
リアルタイムスレッド、Windowsスレッドのいずれの間でも同期的/非同期的にデータ交換できるメールボックスを設置できます。
● 共有メモリによるデータ交換
Windows及びINtimeのどちらのスレッドからも読書きできる任意の大きさのメモリを確保できます。
● リアルタイム共有ライブラリ(RSL)
WindowsのDLLと同様に、リアルタイムプログラミングにおいてもライブラリをダイナミックに共有できます。
● 標準デバイスドライバ
リアルタイムドライバとして、シリアル通信、TCP/IP、USB2.0、工業用リモートI/Oネットワークなどを準備しています。
● 外部I/Oインタフェース
デジタル拡張ボードなどの外部I/OへのアクセスはWindowsのような特殊なドライバは不要です。MS-DOSでのプログラミングのようにI/O空間に直接入出力できます。(表1・リスト1)
拡張ボードとしてPCIボードを使用するためのPCI関数が標準で提供されています。
● リアルタイムAPI
割込みハンドラをアプリケーションプログラムとして利用できます。INtime API、iWIN32 API(RTX API)を自由に使えるので非リアルタイムアプリケーションを容易にリアルタイムに移植できます。
(表2・表3)表1. 外部I/O関数一覧
data8 = inbyte( portaddress )data16 = inhword( portaddress )data32 = inword( portaddress )outbyte( portaddress , data8 )outhword( portaddress , data16 )outword( portaddress , data32 )blockinbyte( portaddress , size . *buffer )blockinhword( portaddress , size . *buffer )blockinword( portaddress , size . *buffer )blockoutbyte( portaddress , size . *buffer )blockouthword( portaddress , size . *buffer )blockoutword( portaddress , size . *buffer )入力

出力

Hardware Multi Task
ブロック入力PentiumClass

ブロック出力リスト1. 外部出力サンプル

図3. INtimeの仕組み// パラレルポート 50Hz パルス出力スレッド
void parallelOutThread( void ){while( 1 ) {outbyte( parallelportaddress , 0xff ) ;RtSleep( 10 ) ;outbyte( parallelportaddress , 0x00 ) ;RtSleep( 10 ) ;}}表2. INtime API
割込み管理
SignalEndOfRtInterrupt, SetRtInterruptHandler, ResetRtInterruptHandler,
SignalRtInterruptThread, WaitForRtInterrupt, DisableRtInterrupt,
EnableRtInterrupt

メールボックス管理
CreateRtMailbox *, DeleteRtMailbox *,SendRtData *, ReceiveRtData *SendRtHandle *,ReceiveRtHandle *,メモリ管理
AllocateRtMemory, FreeRtMemory, CreateRtMemoryHandle,
DeleteRtMemoryHandle, MapRtSharedMemory *, MapRtPhysicalMemory,
GetRtPhysicalAddress, GetRtSize *オブジェクト管理
CatalogRtHandle *, LookupRtHandle *, UncatalogRtHandle *,InspectRtProcessDirectory, GetRtHandleType *, GetRtHandleTypeEx

プロセス管理CreateRtProcess *, ExitRtProcess *, RtNotifyEvent,
RegisterRtDependency, UnregisterRtDependency, RegisterRtSponsor,
UnregisterRtSponsor

knStartRtScheduler,

knStopRtScheduler

DeleteRtSemaphore *,WaitForRtSemaphore *,CloseHandle, CreateEvent, CreateMutex, CreateSemaphore,
CreateThread,ExitProcess, ExitThread, GetCurrentProcess,GetThreadPriority, OpenEvent,OpenMutex, OpenProcess, OpenSemaphore,
OpenThread, SetEvent, WaitForMultipleObjects, WaitForSingleObject

メモリ管理
HeapAlloc, HeapFree, HeapSize, InterlockedCompareExchange,
InterlockedExchange, InterlockedExchangeAdd, InterlockedExchangePointer,
InterlockedIncrement

割込み管理 ＊
RtDisableInterrupts,

RtEnableInterrupts,＊

RtDisablePortIo,
RtWritePort

RtEnablePortIo,

RtReadPort,

RtSetBusDataByOffse,

スケジューラ管理

ステータス管理
GetLastRtError *,GetExitCodeProcess,

オブジェクト管理

I/O操作

セマフォ管理CreateRtSemaphore *,ReleaseRtSemaphore *例外管理
GetExceptionCode, GetExceptionInformation,
GetExitCodeThread, GetLastError

RtAttachInterruptVector,
RtReleaseInterruptVector

スケジューラ管理
knRtSleep,

表3. iWIN32 API

SetLastRtError,

CopyRtSystemInfo,

ReportRtEvent

スレッド管理CreateRtThread, DeleteRtThread, GetRtThreadPriority,
GetRtThreadHandles,SetRtThreadPriority, SetRtProcessMaxPriority, RtSleep,
GetRtThreadAccounting,SuspendRtThread, ResumeRtThread, GetRtThreadInfo

レジストリ管理
RegCreateKeyEx, RegEnumValue, RegLoadKey,
RegQueryValueEx, RegSetValueEx

RegOpenKeyEx,RegQueryInfoKey,

ファイル管理システムデータ管理
ntxGetLocationByName,
ntxGetNameOfLocation

EnterCriticalSection, InitializeCriticalSection, LeaveCriticalSection,
ResumeThread, SetThreadPriority, Sleep, SuspendThread

ntxGetFirstLocation,(*)対応するNTX APIがあります。

ntxGetNextLocation,

CreateDirectory, CreateFile, DeleteFile, FreeLibrary,
GetProcAddress,LoadLibrary, ReadFile, WriteFile(*)RTX互換APIです。

INtime■

開発環境

INtimeシステムは非リアルタイムのWindowsアプリケーション(GUI、ディスクI/O処理など)と、リアルタイムアプリケーション(時間保証の必要な処理)とで構成されます。いずれも、アプリケーション開発プ
ラットフォームとしてMicrosoft Visual Studioを利用します。
● Windows部分を開発する場合、統合デバッガーも含めて標準的なVisual Studio開発環境を利用します。C/C++のほか、VBなどオブジェクト型言語が使えます。
● INtimeシステムのリアルタイム部分を開発する場合、VisualCまたはC++を使用します。INtimeの持つリアルタイムAPI、C/EC++ライブラリが利用できます(図4)。
● リアルタイムアプリケーション開発用に、VisualStudioのアドインとしてINtime Wizardが組込まれており、リアルタイムアプリケーション開発の負担を緩和します。
● リアルタイムサンプルプログラムも多数提供されています。

Visual Studio環境
Visual C/C++ による開発
リアルタイムアプリケーション
YYY.C

ウィザード
サンプルプログラム

図5. ソースコードデバッガ(Visual Studio)

Windows
アプリケーション
XXX.C

・Windows
・Cライブラリ・NTX API・リアルタイムCライブラリ・INtime API
・iWIN32 API

リンク

リンク

Windows
アプリケーション
XXX.exe

リアルタイムアプリケーションYYY.rta

Visual Studio
ソースコードデバッガー

Visual Studio/Spider
ソースコードデバッガー

WindowsとINtimeとを同期デバッグ

図6.リアルタイムスレッドトレーサー(INScope)

図4. INtimeソフトウェア開発■

デバッグ機能● Visual Studioとの連携
非リアルタイム(Windows)アプリケーションはVisual Studioを使い、リアルタイムアプリケーションはVisual StudioまたはSpiderのソースコードデバッガを使います。これらアプリケーションを一つのディスプレイ上で同期させながら統合的にデバッグできます。
ソースコードを見ながらブレークポイント、シングルステップトレース、スキップトレース、メモリダンプ、レジスタダンプ、変数ウォッチ、スレッドサスペンド/レジューム等の方法でデバッグできます。
● 全てのマルチスレッド操作が可能
スレッドウィンドウを用いてデバッグ対象のスレッドを任意に選択できます。
● ローカル及びリモートRTノードのデバッグ
Visual Studio debugger/Spiderは、単一PCでWindowsと共存している
INtimeノード構成のデバッグだけでなく、シリアルやEthernetで接続されたリモートのリアルタイムノードもデバッグできます。(図5)● リアルタイムスレッドトレーサ(INscope)
リアルタイムスレッドの動作タイミングをグラフィッカルに分析できます。(図6)■

システムの監視機能・保守機能● ブルースクリーンクラッシュ・ハンドリング
INtimeリアルタイムアプリケーションはWindowsハングアップ(ブルースクリーン)を即座にイベントとして検出できます。そして、GUIを失ったまま制御を続けることも、警報を発することも、システム再起動を行うことも可能です。
● INtime Explorer
INtimeの管理する全てオブジェクト(プロセス/スレッド/メモリ/メールボックス/セマフォ他)をダイナミックに参照し、管理することができます。また、アプリケーションエラーのレポーティング機能を持っています。
● Windowsイベントログサービスとの連携
リ ア ル タ イ ム プ ロ セ ス は、必要に応じて致命的な障害発生や、警告をWindowsの管理するイベントログサービスに対し記録を依頼できます。

INtime■■

柔軟なシステム構成

INtimeシステムは一台のPCプラットフォーム上でWindowsとINtimeが同時に動作するスタンドアローン型システムのほか、複数のPCプラットフォーム上でネットワーク分散化されたシステムでも動作します。このときINtimeおよびWindowsのアプリケーションソフトウェアはコード変換なしに相互に互換性があります。(図7)

日本語ドキュメンﾄ、日本語による技術サポート

INtime開発システムには日本語オンラインヘルプが用意されています。
(図8)
技術的な問合わせにはスキルを積んだ日本人技術者が直接回答します。
(年間契約/有償)

WindowsXP/Vistaホスト

Ethernet or RS-232
RT nodeRT nodeINtimeapplication
INtimeapplication

INtimeapplication
INtimeapplication
RT nodeINtimeapplication
INtimeapplication

図8. 日本語オンラインヘルプ
図7. ネットワーク構成

INtime 仕様
プライオリティ
スケジューリング(高)0～255(低)256段階

カーネルティック

50μs,100μs,200μs,250μs,500μs
1ms,2ms,5ms,10msより選択。

ラウンドロビン
スケジューリング

適用プライオリティしきい値変動可
10ms単位～100ms

プラットホーム

PC/AT互換機

メールボックス

FIFO式/優先度式

CPUIntel Pentium互換(マルチコアを含む)

セマフォ

FIFO式/優先度式

メモリ

64Mバイト以上

最大セグメントサイズ

4Gバイト

割り込み

ハンドラ/スレッド構造,IRQ共有可,APICモード対応

HDD

20Mバイト以上
FAT/FAT32/NTFSフォーマット

開発言語

Microsoft Visual StudioOS

リアルタイムデバッガ

Visual Studio

ネットワーク(標準添付）

リアルタイムTCP/IP,UDP/IPリアルタイムUSB

最大オブジェクト数8192個

Windows Vista
Windows Embedded Standard
Windows XP , Windows XP Embedded
Windows 2000
Windows 7

INtimeはTenAsys社の登録商標です。
その他に記載されているすべての製品名は、各社の商標または登録商標です。

動作適合ハードウェア

このカタログ内の仕様は予告なしに変更することがあります。

【開発元】
ご注意：INtime製品の導入に関し、以下についてご注意ください

http://www.tenasys.com/

一部認証手続きの出来ないＣＦメディアが確認されております。適合確認済ＣＦメディアにつきましては下記URLにてご案内しておりますので導入の際は事前のご確認をお願い致します。

【アジア地区総代理店】
http://www.mnc.co.jp/

株式会社「 動作適合ハードウェア 」ページ
http://www.mnc.co.jp/INtime/i_platform.htm〒314-0135 茨城県神栖市堀割3-8-11
Tel：0299-(90)-1733 Fax：0299-(92)-8557
E-mail: abc@mnc.co.jp(2008/11/10K)