工控编程吧

标题: 如何使用GSM3.38 移动电话标准对 SMS 短消息进行编 [打印本页]

作者: baikhgmv    时间: 2016-11-14 10:24
标题: 如何使用GSM3.38 移动电话标准对 SMS 短消息进行编
如何使用GSM3.38 移动电话标准对 SMS 短消息进行编码

描述
如果使用 S7 CPU 通过蜂窝式无线电话系统发送 SMS 短消息,必须遵守以下 SMS 消息的编码说明。

S7 CPU 使用 ASCII 字符,而大多数蜂窝式无线电话系统供货商使用GSM 3.38 消息文本标准,两者在规范上存在着不同,这意味着 ASCII 和 GSM 3.38 的编码会有不同。

由于 S7 CPU 传输字节数据时并不会进行转换,因此当在 Step7 中输入一个字符串发送时可能会导致 SMS 的字符出错。

例如:
如果在一个字符串中使用了下划线符号("_") ,SMS 的消息文本中将会错误地以"§" 替代,因为在 GSM 3.38 编码中,"§"被编码为95(十进制),下划线("_")被编码成17(十进制)。

补救措施
在 SMS 文本中直接使用 MOVE 命令将相关的代码编号送到对应的地址当中,例如为了在 SMS 中正确编码下划线"_",可以直接将17(十进制)送到 DBx.DBBx 中。

总览
下表描述了不同字符在 GSM 3.38 和 ASCII 的不同编码值:

GSM 3.38
编码值 (十进制)
ASCII
编码值 (十进制)
字符
描述
0
64
@
1
163
2
36
$
10
10
LF
换行
13
13
CR
17
95
_
下划线
27
27
<ESC>
ESC键
32
32
SP
空格
33
33
!
34
34
"
35
35
#
37
37
%
38
38
&
39
39
'
40
40
(
41
41
)
42
42
*
43
43
+
44
44
,
45
45
-
46
46
.
47
47
/
48
48
0
49
49
1
50
50
2
51
51
3
52
52
4
53
53
5
54
54
6
55
55
7
56
56
8
57
57
9
58
58
:
59
59
;
60
60
<
61
61
=
62
62
>
63
63
?
65
65
A
66
66
B
67
67
C
68
68
D
69
69
E
70
70
F
71
71
G
72
72
H
73
73
I
74
74
J
75
75
K
76
76
L
77
77
M
78
78
N
79
79
O
80
80
P
81
81
Q
82
82
R
83
83
S
84
84
T
85
85
U
86
86
V
87
87
W
88
88
X
89
89
Y
90
90
Z
91
196
&#196;
92
214
&#214;
94
220
ü
97
97
a
98
98
b
99
99
c
100
100
d
101
101
e
102
102
f
103
103
g
104
104
h
105
105
i
106
106
j
107
107
k



作者: baikhgmv    时间: 2016-11-14 10:24
108        108        l         
109        109        m         
110        110        n         
111        111        o         
112        112        p         
113        113        q         
114        114        r         
115        115        s         
116        116        t         
117        117        u         
118        118        v         
119        119        w         
120        120        x         
121        121        y         
122        122        z         
123        228        &#228;         
124        246        &#246;         
126        252        ü         
27
10        12        FF       
换页
在ESC(16进制0x1B = 27 十进制) 之后紧跟着一个换行字符<LF> (16进制0x0A = 10  十进制)将产生换页字符
27
101        128       




欢迎光临 工控编程吧 (https://www.gkbc8.com/) Powered by Discuz! X3.4