各位老師好:
我是一個(gè)新手,最近我有一個(gè)案子,就是用字幕機(jī)來(lái)顯示plc里指定的數(shù)據(jù)區(qū)的內(nèi)容。不知道這如何做??
《字幕機(jī)是有通訊協(xié)議的,我把這個(gè)協(xié)議也傳上來(lái)讓大家看看啊》如果有那位老師有能力的話可以聯(lián)系我!18913259279小戴。
專業(yè)型單色字幕機(jī)通訊協(xié)定
通訊協(xié)定:
baud rate :9600
stop bit :1 bit
parity check :none
data bit :8 bits
資料格式:前導(dǎo)碼+站號(hào)+模式碼+資料+check sum+結(jié)束碼
1. 前導(dǎo)碼:02h
2. 結(jié)束碼:03h
3. 站號(hào) : 共兩個(gè)byte
high byte -> ‘A’-‘Z’
low byte -> ‘0’-‘9’
站號(hào)若為’Z’ 表示全部接收,共有’A’-‘Y’,25群組。
站號(hào)若為’0’ 表示群組接收,共有’1’-’9’,9臺(tái)字幕機(jī)。
站號(hào)若不為’Z’ 或’0’表示個(gè)別接收,則字幕機(jī)在接收之後須回覆接收狀態(tài)。
(請(qǐng)參看通訊設(shè)定的B.字幕機(jī)回應(yīng))
4.模式碼:
A. 傳送文字:A1h
02h+站號(hào)+A1h+文字資料+check sum+03h
*文字資料格式-> 行號(hào)+資料模式
1. 行號(hào):從’01h’-‘FEh’共254行
2. 資料模式:停留時(shí)間+前功能+文字模式碼+文字+後功能
a. 停留時(shí)間:’00h’-‘FFh’ 表示停留時(shí)間由0秒到255秒。
b. 前後功能碼:由’A’-‘Q’共17種功能
碼 功能名稱 碼 功能名稱 碼 功能名稱
A 向左移入 B 向內(nèi)捲入(出) C 向外捲入(出)
D 覆蓋向左 E 覆蓋向右 F 覆蓋向上
G 覆蓋向下 H 覆蓋向內(nèi) I 覆蓋向外
J 覆蓋↑↓ K 覆蓋↓↑ L 向上捲入(出)
M 向下捲入(出) N 立即顯現(xiàn) O 同時(shí)出現(xiàn)
P 跳入 Q 射入(時(shí)間) R 時(shí)間(續(xù)幕)
c. 文字模式碼:
i. (D0h):表示後面所接的文字為全形或半形中英數(shù)字。
ii. (D1h):表示後面所接的文字分為上下兩行之半形英數(shù)字,先送上行
再接下行。
註:不足之部份一定要補(bǔ)空白20h,且一律使用覆蓋之方式。
範(fàn)例:
站號(hào):A1 字?jǐn)?shù):10個(gè)字 編輯內(nèi)容:漢騰字幕機(jī)1234567890ABCDEFGHIJ
2 A1 a1 1 1 A d0 ba ~ c4 cb a6 r b9 f5 be f7 1234567890R 9 3傳送碼
2 A1 a1 2 1 A d0 ABCDEFGHIJ R 1a 3傳送碼
前導(dǎo)碼 站號(hào) 傳送文字碼 行號(hào) 停留時(shí)間 前功能 文字模式
漢騰字幕機(jī) 文字資料 後功能 check sum 結(jié)束碼
前導(dǎo)碼 站號(hào) 傳送文字碼 行號(hào) 停留時(shí)間 前功能 文字模式
ABCDEFGHIJ補(bǔ)10個(gè)空白 後功能 check sum 結(jié)束碼
範(fàn)例: 站號(hào):A1 字?jǐn)?shù):10個(gè)字 編輯內(nèi)容:上行 ABCDEFGHIJKLMNOPQRST
下行 12345678901234567890
2 A1 a1 1 1 A d1 ABCDEFGHIJKLMNOPQRST12345678901234567890R 7 3
前導(dǎo)碼 站號(hào) 傳送文字資料 行號(hào) 停留時(shí)間 前功能 文字模式
文字資料 後功能 CHECK SUM 結(jié)束碼
B.插播文字:A2h
02h+站號(hào)+A2h+文字資料+check sum+03h
*文字資料格式-> 插播時(shí)間長(zhǎng)度+資料模式
1. 插播時(shí)間長(zhǎng)度:從’0Ah’-‘FFh’,表示10秒到255秒
2.資料模式:後面所接的文字為全形或半形中英數(shù)字(50bytes)。
註:不足之部份一定要補(bǔ)空白20h。
範(fàn)例: 站號(hào): A1 插播文字: A*50個(gè)
2 A1 a2 a AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA d8 3
前導(dǎo)碼 站號(hào) 顯示行號(hào) 停留時(shí)間 a…不足部分要補(bǔ)空白 check sum 結(jié)束碼
C.設(shè)定內(nèi)部時(shí)間:A5h
02h+站號(hào)+A5h+時(shí)間資料+check sum+03h
*時(shí)間資料:時(shí)+分+秒 (共3bytes)。 請(qǐng)依照其十進(jìn)位轉(zhuǎn)成16進(jìn)位送出。
D.恢復(fù)行號(hào)內(nèi)容:A6h
02h+站號(hào)+A6h+恢復(fù)筆數(shù)+恢復(fù)行號(hào)+check sum+03h
1. 恢復(fù)筆數(shù):想要恢復(fù)行號(hào)之bytes數(shù)。
2. 恢復(fù)行號(hào):從’01h’-‘FEh’共254行
例:想要恢復(fù)4,8,9之內(nèi)容,則
(恢復(fù)筆數(shù))+(恢復(fù)行號(hào))=(03h)+(04h+08h+09h)
E.刪除行號(hào)內(nèi)容:A7h
02h+站號(hào)+A7h+刪除筆數(shù)+刪除行號(hào)+check sum+03h
請(qǐng)參照.F.恢復(fù)行號(hào)內(nèi)容
F.顯示行號(hào):A8h
02h+站號(hào)+A8h+起始行號(hào)+結(jié)束行號(hào)+check sum+03h
行號(hào):從’01h’-‘FEh’共254行,結(jié)束行號(hào)一定要大於等於起始行號(hào)。
範(fàn)例:
2 A1 a8 1 1 d8 3
前導(dǎo)碼 站號(hào) 顯示行號(hào) 行號(hào) 行號(hào) check sum 結(jié)束碼
B. 字幕機(jī)回應(yīng):前導(dǎo)碼+站號(hào)+模式碼+資料+check sum+結(jié)束碼
*前導(dǎo)碼、站號(hào)、模式碼、結(jié)束碼:與前面所述皆同
*資料:1.當(dāng)接收無(wú)誤時(shí),回應(yīng):06h
2.當(dāng)接收有誤時(shí),回應(yīng):15h
C. check sum的做法:將(站號(hào)+模式碼+資料,不包含前導(dǎo)碼02h)裏面的資料做XOR。