第 7 章 アプリケーションインタフェース
A.4 シリアル通信ポート (RS-232C) 伝送仕様
表A-4 機能仕様
項 目 仕 様
プロトコル TCP/UDP/IP、PCMP、IRCP(注)
伝送方式 • ポイント・ツー・ポイント伝送
• マルチキャスト伝送
• ブロードキャスト伝送
• 階層間通信機能(将来)
監視機能(RAS) ハードウェア/ソフトウェア システム構成 • マルチホスト
最大ホストモジュール:4台
• マルチポート
最大Ethernetモジュール:4台 ENモジュール
使用ポート
PCMP ポート番号 10000 伝送路診断 ポート番号 48000
表A-5 シリアル伝送仕様
項 目 仕 様
データ伝送速度 最大56kbps
同期方式 調歩同期
伝送ケーブル 9ピン-9ピンD-subコネクタ付きクロスケーブル ケーブル長 最大15m
通信方式 全二重
通信設定 • パリティビット:なし
• キャラクタ長:8ビット
• ストップビット:1ビット
6E8C3850
85
付録 B 外形寸法
EN6モジュール,EB6モジュールの外形寸法を示します。
図B-1 外形寸法図
[mm]
6E8C3850
87
付録 C 関連製品
(注 1) B系モジュール用盤内ケーブルの最大長は3mです。
(製品の標準添付ケーブル長は、70mmです。)
(注 2) +12VDC電源ケーブル長は、0.5m(標準)です。
(注 3) AUIケーブル手配時は、長さを指定してください。
表C-1 関連製品
製品名 形 式 定 格 手配コード 備考
3D-2V
(10BASE2ケーブル)
ZCA123A***1 BNCコネクタ 4Y8B0271P001 A系10BASE2盤内用 ZCA133A***1-B BNCコネクタ 4Y8B0271P002 B系10BASE2盤内用 5D-2W
(10BASE2ケーブル)
ZCA125A***1 BNCコネクタ 4Y8B0272P001 A系10BASE2盤外用 ZCA135A***1-B BNCコネクタ 4Y8B0272P002 B系10BASE2盤外用 ツイストペア
(ケーブルB系モジュール用 盤内ケーブル)
GCM-04-GY モジュラジャック 5P8C1347P015 EN621-EB621間 EN641-EB641間
(注1) +12VDC電源ケーブル
(注2)
CE6R5 2Pコネクタ 4Y8C0328G001 EN611,EN621,EB621用
(10BASE5トランシーバ 電源供給用)
T型アダプタ BNC-TA(JPJ)-AU1 BNCコネクタ 5P8C1316P004 モジュールのコネクタに 取付
終端抵抗 TBP65-AU1 50Ω 5P8C1316P003 10BASE2用
中継コネクタユニット UCNE1 コネクタ変換 3Y8B1619 10BASE2 盤内-盤外中継 室内-制御室中継 接地用コネクタ
ユニット
UCNE2 コネクタ変換、
接地
3Y8B1641 10BASE2ケーブル接地用
AUIケーブル AUI15 -□M 細径
モールドタイプ
5P4P0032P*** SWCC製(注3) RS-232Cケーブル GCJ6□□*CS
(Type-G) (注4)
9ピンD-sub 5X8C0003 G*****
*****はケーブル長
(単位:mm) カテゴリ5ツイストペア
(ストレートタイプ)ケーブル
ZCA101A***1 RJ-45コネクタ - 色:グレー
カテゴリ5ツイストペア
(クロスタイプ)ケーブル
ZCA121A***1 RJ-45コネクタ - 色:紫
C
また、細径のものを使用してください。ケーブルコネクタクランプができない可能 性があります。使用可能なAUIケーブルの最大長は、15mです。
(注 4) RS-232Cケーブル手配時は、長さを指定してください。
AU115-□M
長さ:単位m(例:5=5m)
GCJ6□□*CS
長さ:単位m(例:03=3m)
6E8C3850
89
付録 D 10 進- 16 進 変換表
表D-1 10進―16進変換表
10進数 16進数 10進数 16進数 10進数 16進数 10進数 16進数
0 0 32 20 64 40 96 60
1 1 33 21 65 41 97 61
2 2 34 22 66 42 98 62
3 3 35 23 67 43 99 63
4 4 36 24 68 44 100 64
5 5 37 25 69 45 101 65
6 6 38 26 70 46 102 66
7 7 39 27 71 47 103 67
8 8 40 28 72 48 104 68
9 9 41 29 73 49 105 69
10 A 42 2A 74 4A 106 6A
11 B 43 2B 75 4B 107 6B
12 C 44 2C 76 4C 108 6C
13 D 45 2D 77 4D 109 6D
14 E 46 2E 78 4E 110 6E
15 F 47 2F 79 4F 111 6F
16 10 48 30 80 50 112 70
17 11 49 31 81 51 113 71
18 12 50 32 82 52 114 72
19 13 51 33 83 53 115 73
20 14 52 34 84 54 116 74
21 15 53 35 85 55 117 75
22 16 54 36 86 56 118 76
23 17 55 37 87 57 119 77
24 18 56 38 88 58 120 78
25 19 57 39 89 59 121 79
26 1A 58 3A 90 5A 122 7A
27 1B 59 3B 91 5B 123 7B
28 1C 60 3C 92 5C 124 7C
29 1D 61 3D 93 5D 125 7D
30 1E 62 3E 94 5E 126 7E
31 1F 63 3F 95 5F 127 7F
6E8C3850
91
付録 E サンプル プログラム
参考のため簡単なメッセージ伝送プログラム例を以下に示します。
これらは、通信FBのUSEND_TおよびURCV_Tにて実現します。
通信FBの詳細説明につきましては、SおよびLコントローラの命令語説明書 (6E8C3787)を参照願います
<UDP 伝送の例>
参考プログラムは、STN1のS3からSTN1のEthernetのUDPポート20014を使用して、
STN2のS3へSTN2のEthernetのUDPポート20013に対して送信し、STN2ではUDP ポート20013からデータ受信を行うものです。
STN1 STN2
0 S 2
1 2 3
Ethernet
4 0
S 2
1 2 3 4
Ethernet
172.16.64.7 172.16.64.4
(スロット番号)
E
変数定義(UDP送信)
VAR
OPEN_ENABLED: BOOL; OPEN_COMPLETE: BOOL; OPEN_ERROR: BOOL;
OPEN_REQ: BOOL;
TX_ENABLED: BOOL; TX_COMPLETE: BOOL;
TX_ERROR: BOOL;
TX_REQ: BOOL;
TX_DT_CNT: UNIT;
OPEN_STATUS1: INT; USEND_T_1: USEND_T; USEND_T_2: USEND_T; SEND_STATUS: INT; CLOSE_ENABLED: BOOL;
US_DUMMY1: WORD;
US_DUMMY2: UINT;
US_SIZE: UNIT;
US_DATA:ARRAY[0..511] OF WORD;
U_O: typeUDP_OPEN;
U_S: typeUDP_SEND_BC;
U_C: typeUDP_CLOSE;
END_VAR
6E8C3850
93
E
プログラム(UDP送信)
MOVE_UINT U_O.Slot ST
LD 3 16#0031 MOVE_WORD U_O.Cmd ST
LD 20014 MOVE_UINT U_O.SPort ST
LD
U_S.Slot 3 ST
LD MOVE_UINT 16#0032 MOVE_WORD U_S.Cmd ST
LD 16#AC10_4004 MOVE_DWORD U_S.DIP ST
LD
MOVE_UINT U_S.DPort ST 20013
LD 512 MOVE_UINT US_SIZE ST
LD MOVE_INT
OPEN_STATUS1
LD U_S.Socket
ST OPEN_STATUS1 MOVE_INT
LD U_S.Socket
ST /*UDP OPEN REQUEST */
/* UDP SEND REQUEST */
OPEN_
COMPLETE OPEN_ERROR OPEN_REQ
OPEN_REQ USEND_T
S
OPEN_COMPLETE REQ
USEND_T_1
DONE
CMD OPEN_ERROR
U_O LD
US_DUMMY1 P LD
US_DUMMY2
LD N
ERROR
STATUSOPEN_STATUS1 ST
N OPEN_
COMPLETE TX_ERROR
TX_REQ USEND_T REQ
USEND_T_2
DONE
CMD
TX_ERROR U_S
LD
US_DATA[0] P LD
US_SIZE LD
ERROR
STATUS
SEND_STATUS ST TX_COMPLETE
TX_COMPLETE CLOSE_
COMPLETE TX_REQ
E
変数定義(UDP受信)
VAR
OPEN_ENABLED: BOOL; OPEN_COMPLETE: BOOL; OPEN_ERROR: BOOL;
OPEN_REQ: BOOL;
RX_ENABLED: BOOL; RX_COMPLETE: BOOL;
RX_ERROR: BOOL;
RX_REQ: BOOL;
RX_DATA_CNT: UNIT;
RX_COUNT: INT;
CLOSE_ENABLED: BOOL; CLOSE_COMPLETE: BOOL; CLOSE_ERROR: BOOL; CLOSE_REQ: BOOL; RCV_STATUS: INT; CLOSE_STATUS: INT;
UR_DUMMY1: WORD;
UR_DUMMY2: UINT;
UR_SIZE: UNIT;
UR_DATA:ARRAY[0..512] OF WORD;
URCV_T_1: WORD;
USEND_T_1: USEND_T; OPEN_STATUS1: INT;
U_O: typeUDP_OPEN;
U_R: typeUDP_RCV_BC;
U_C: typeUDP_CLOSE;
T_SK_CMD: typeTCP_SEND; T_SOCKET: URCV_T;
T_SK_REQ: BOOL;
T_SK_COMP: BOOL;
T_SK_ERR: BOOL;
T_SK: INT;
T_SK_SOCKET: INT;
T_SK_DT: WORD;
RX_TRG: BOOL;
END_VAR
6E8C3850
95
E
プログラム(UDP受信)
MOVE_UINT U_O.Slot ST
LD 4 16#0031 MOVE_WORD U_O.Cmd ST
LD 20013 MOVE_UINT U_O.SPort ST
LD /* UDP OPEN REQUEST */
OPEN_
COMPLETE OPEN_ERROR OPEN_REQ
OPEN_REQ USEND_T
S
OPEN_COMPLETE REQ
USEND_T_1
DONE
CMD OPEN_ERROR
U_O LD
US_DUMMY1 P LD
US_DUMMY2
LD N
ERROR
STATUSOPEN_STATUS1 ST
OPEN_
COMPLETE OPEN_ERROR
MOVE_UINT T_SK_CMD.Slot ST 4
LD 16#0016 MOVE_WORD T_SK_CMD.Cmd ST
LD OPEN_STATUS1 MOVE_UINT T_SK_CMD.Socket ST LD
N OPEN_
COMPLETE T_SK_COMP T_SK_REQ URCV_T
REQ T_SOCKET
DONE
CMD
T_SK_ERR T_SK_CMD
LD
T_SK P LD
LD 0
ERROR
STATUS
T_SK_SOCKET ST
T_SK_ERR T_SK_REQ T_SK_COMP
UINT_TO_WORD
LD 4 WORD_TO_INT INT_TO_DINT MUL_DINT
524288
LD T_SK_SOCKET
LD INT_TO_DINT
ADD_DINT ST XI
%MW13.130944[XI]
LD T_SK_DT ST
RX_TRG EQ_WORD
16#0400 LD AND_WORD
16#0400 LD T_SK_DT
LD
E
クローズ要求(CLOSE_REQをONにしたときにクローズする場合)(UDPの場 合)
OPEN_
COMPLETE RX_COMPLETE RX_REQ
RX_REQ URCV_T REQ
URCVD_T_1
DONE
CMD
RX_ERROR U_R
LD
UR_DATA[0] P LD
UR_SIZE LD N
ERROR
STATUS
RCV_STATUS ST
RX_ ERROR
RX_COMPLETE CLOSE_
ENABLED RX_TRG
U_R.Slot ST 4
LD MOVE_UINT 16#0033 MOVE_WORD U_R.Cmd ST
LD 16#0000_0000 MOVE_DWORD U_R.DIP ST
LD
MOVE_UINT U_R.DPort ST 20014
LD 16#0000 MOVE_UINT U_R.TimeUp ST
LD MOVE_INT
OPEN_STATUS1
LD U_R.Socket
ST /* UDP RECEIVE REQUEST */
MOVE_UINT UR_SIZE ST 513
LD
CLOSE_REQ USEND_T REQ
USEND_T_3
DONE
CMD
CLOSE_ERROR U_C LD
DUMMY P LD
DUMMY LD N
ERROR
STATUS
CLOSE_STATUS1 ST
CLOSE_COMPLETE U_C.Slot
3 ST
LD MOVE_UINT 16#0034 MOVE_WORD U_C.Cmd ST
LD MOVE_INT U_C.Socket
OPEN_STATUS1 ST LD
6E8C3850
97
E
<TCP 伝送の例>
参考プログラムは、STN1のS3からSTN1のEthernetのTCPポート30004を使用して、
STN2のS3へSTN2のEthernetのTCPポート30003に対して送信し、STN2では、TCP ポート30003からデータ受信を行うものです。
変数定義(TCP送信)
VAR
OPEN_ENABLED: BOOL; OPEN_COMPLETE: BOOL; OPEN_ERROR: BOOL; OPEN_REQ: BOOL; TX_ENABLED: BOOL; TX_COMPLETE: BOOL; TX_ERROR: BOOL;
TX_REQ: BOOL;
TX_DT_CNT: UNIT; OPEN_STATUS1: INT; USEND_T_1: USEND_T; USEND_T_2: USEND_T; SEND_STATUS: INT; CLOSE_ENABLED: BOOL;
TS_DATA:ARRAY[0..511] OF WORD;
T_O: typeTCP_OPEN;
T_S: typeTCP_SEND;
T_C: typeTCP_CLOSE;
END_VAR
STN1 STN2
0 S 2
1 2 3
Ethernet
4 0
S 2
1 2 3 4
Ethernet
172.16.64.7 172.16.64.4
(スロット番号)
E
プログラム(TCP送信)
T_S.Slot ST 3
LD MOVE_UINT 16#0037 MOVE_WORD T_S.Cmd ST LD
MOVE_INT OPEN_STATUS1
LD T_S.Socket
ST OPEN_STATUS1 MOVE_INT
LD T_C.Socket
ST /* TCP SEND REQUEST */
N OPEN_
COMPLETE TX_ERROR
TX_REQ USEND_T REQ
USEND_T_2
DONE
CMD
TX_ERROR T_S
LD
TS_DATA[0] P LD
16#200 LD
ERROR
STATUS
SEND_STATUS ST TX_COMPLETE
TX_COMPLETE CLOSE_
COMPLETE TX_REQ MOVE_UINT
LD 3 16#0035 MOVE_WORD T_O.Cmd ST
LD 1 MOVE_UINT T_O.Kind ST
T_O.Slot LD ST
MOVE_UINT T_O.TimeUp ST 0
LD
MOVE_DWORD T_O.DIP ST 16#AC10_4004
LD 30003 MOVE_UINT T_O.DPort ST
LD MOVE_UINT T_O.Sport
ST 30004
LD /* TCP OPEN REQUEST(ACTIVE) */
OPEN_
COMPLETE OPEN_ERROR OPEN_REQ
OPEN_REQ USEND_T
S
OPEN_COMPLETE REQ
USEND_T_1
DONE
CMD OPEN_ERROR
P
N
ERROR
STATUSOPEN_STATUS1 ST T_O
LD
%MW3.348 LD
16#0 LD
OPEN_ENABLED
R
6E8C3850
99
E
変数定義(TCP受信)
VAR
OPEN_ENABLED: BOOL; OPEN_COMPLETE: BOOL; OPEN_ERROR: BOOL;
OPEN_REQ: BOOL;
RX_ENABLED: BOOL; RX_COMPLETE: BOOL;
RX_ERROR: BOOL;
RX_REQ: BOOL;
RX_DATA_CNT: UNIT;
RX_COUNT: INT;
CLOSE_ENABLED: BOOL; CLOSE_COMPLETE: BOOL; CLOSE_ERROR: BOOL; CLOSE_REQ: BOOL; RCV_STATUS: INT; CLOSE_STATUS: INT;
TR_DATA:ARRAY[0..512] OF WORD;
T_O: typeTCP_OPEN;
T_R: typeTCP_RCV;
T_C: typeTCP_CLOSE;
URCV_T_1: URCV_T; USEND_T_1: USEND_T; OPEN_STATUS1: INT;
T_SK_CMD: typeTCP_SEND; T_SOCKET: URCV_T;
T_SK_REQ: BOOL;
T_SK_COMP: BOOL;
T_SK_ERR: BOOL;
T_SK: INT;
T_SK_SOCKET: INT;
T_SK_DT: WORD;
RX_TRG: BOOL;
END_VAR
E
プログラム(TCP受信)
/* TCP OPEN REQUEST(PASSIVE) */
OPEN_
COMPLETE OPEN_ERROR
MOVE_UINT T_SK_CMD.Slot ST 4
LD 16#0016 MOVE_WORD T_SK_CMD.Cmd ST
LD OPEN_STATUS1 MOVE_UINT T_SK_CMD.Socket ST LD
N OPEN_
COMPLETE T_SK_COMP T_SK_REQ URCV_T
REQ T_SOCKET
DONE
CMD
T_SK_ERR T_SK_CMD
LD
T_SK P LD
0 LD
ERROR
STATUS
T_SK_SOCKET ST
T_SK_ERR T_SK_REQ T_SK_COMP
UINT_TO_WORD 4
LD WORD_TO_INT INT_TO_DINT MUL_DINT
524288
LD T_SK_SOCKET
LD INT_TO_DINT
ADD_DINT ST XI
%MW13.130944[XI]
LD T_SK_DT ST
RX_TRG EQ_WORD
16#0400 LD AND_WORD
16#0400 LD T_SK_DT
LD
MOVE_UINT T_O.Slot ST
LD 4 16#0035 MOVE_WORD T_O.Cmd ST
LD 2 MOVE_UINT T_O.Kind ST
LD
MOVE_DWORD T_O.DIP ST 16#AC10_4007
LD MOVE_UINT T_O.DPort
ST 30004
LD
MOVE_UINT T_O.TimeUp ST 0
LD
MOVE_UINT T_O.SPort ST 30003
LD
OPEN_
COMPLETE OPEN_ERROR OPEN_REQ
OPEN_REQ USEND_T
S
OPEN_COMPLETE REQ
USEND_T_1
DONE
CMD OPEN_ERROR
P
N
ERROR
STATUSOPEN_STATUS1 ST T_O
LD
%MW3.348 LD
%MW3.347 LD
OPEN_ENABLED
R
6E8C3850
101
E
クローズ要求(CLOSE_REQをONにしたときにクローズする場合)(TCPの場 合)
OPEN_
COMPLETE RX_COMPLETE RX_REQ
RX_REQ URCV_T REQ
URCV_T_1
DONE
CMD
RX_ERROR T_R
LD
TR_DATA[0] P LD
16#201 LD N
ERROR
STATUS
RCV_STATUS ST
TX_ ERROR
RX_COMPLETE CLOSE_
ENABLED RX_TRG
T_R.Slot ST 4
LD MOVE_UINT 16#0038 MOVE_WORD T_S.Cmd ST LD
MOVE_INT OPEN_STATUS1
LD T_R.Socket
ST /* TCP RECEIVE REQUEST */
MOVE_INT OPEN_STATUS1
LD T_C.Socket
ST
CLOSE_REQ USEND_T REQ
USEND_T_3
DONE
CMD
CLOSE_ERROR T_C LD
DUMMY P LD
DUMMY LD N
ERROR
STATUS
CLOSE_STATUS1 ST
CLOSE_COMPLETE T_C.Slot
3 ST
LD MOVE_UINT 16#0039 MOVE_WORD T_C.Cmd ST
LD MOVE_INT T_C.Socket
OPEN_STATUS1 ST LD
6E8C3850
103
付録 F リターンコード 一覧
EN関連のリターンコードを以下に示します。
このリターンコードは通信FBにて出力されます。通信FBの詳細説明につきまして は、SおよびLコントローラの命令語説明書(6E8C3787)を参照願います。
USND_T/URCV_T命令 エラーコード一覧
リターン値 内容
-5000 通信命令要求数オーバー
-5001 コマンド種別異常
-5002 受信タイムアウト
-5003 ソケット使用中または未オープン
-5004 スロット・ソケット番号範囲外
-5005 ソケット未オープン
-5006 ポート番号重複
-5007 相手先ビジーまたは接続断
-5099 その他のエラー
-1001 該当ソケットビジー
-1002 該当ソケットが未生成
-1005 Pingタイムアウト(PINGタスク判断)
-1006 Pingビジー(PINGタスク判断)
-1010 ソケットタイプ異常
-1011 受信用メモリブロックの不足
-2001 通信要求数オーバー
-2002 要求バッファ数オーバー
-2005 該当ソケット未開設
-2006 使用ポート数オーバー
-2007 応答タイムアウト
-2008 バッファリソース確保に失敗
-2009 ENボードリセット中
-2201 割込み受け付け待ちタイムアウト
-2202 確認/指示応答待ちタイムアウト
F
通信手順 リターン値 内容
■ACCEPT
ENOBUFS -15 リソース不足
EBADF -16 有効なソケット識別子ではない
EWOULDBLOCK -18 ソケットが非同期入出力モードに設定されており、かつ接
続を待つのものが存在しない
EOPNOTSUPP -56 指定されたソケットがSOCK_STREAM型ではない
EPROTO -71 プロトコルエラー
■EN_BIND
EBADF -16 有効なソケット識別子ではない
EFAULT -17 引数(addrまたはaddrlen)がユーザのアドレス空間の有
効な領域にない
EAFNOSUPPORT -58 指定のアドレスファミリーは現在未サポート
EADDRINUSE -59 与えられたアドレスが既に用いられている
EADDRNOTAVAIL -60 与えられたアドレスは、本システムでは利用不可
■CLOSE
EBADF -16 有効なソケット識別子ではない
■CONNECT
EHOSTUNREACH -11 接続相手先IPアドレス不正
ETIMEDOUT -12 タイムアウト。一定時間待ったが接続が完了しない
EBADF -16 有効なソケット識別子ではない
EINVAL -22 既にbindされている
EDESTADDRREQ -50 引数(name,namelen)が不正
EAFNOSUPPORT -58 指定のアドレスファミリーは現在未サポート
EADDRNOTAVAIL -60 与えられたアドレスは、本システム上では利用できない
EISCONN -67 そのソケットは既に接続されている
■LISTEN
EBADF -16 有効なソケット識別子ではない
EINVAL -22 パラメータ不正
EOPNOTSUPP -56 ソケットがlistenをサポートしている型ではない
■RECV
■RECVFROM
ETIMEDOUT -12 タイムアウト
ECONNABORTED -14 ローカルシステム上でコネクションが切断された
EBADF -16 有効なソケット識別子ではない
EFAULT -17 引数(バッファポインタ)ポインタ不正
EWOULDBLOCK -18 受信すべきデータがない
EPIPE -32 コネクションは切断されている
EOPNOTSUPP -56 指定された操作は、そのソケットではサポートされていな
い