SIEMENS西门子 ET200SP输出模块 6ES7 132-6BD20-0CA0
SMS_SEND: 发送文本(SMS)消息 (S7-300, S7-400) SMS_SEND 说明 (S7-300, S7-400) 说明 指令“SMS_SEND”可以将电话号码、服务中心号码和 SMS 消息传输至 TS 适配器。 TS 适配器 使用 GSM 命令将这些数据传输至无线调制解调器。 SMS 消息发送出去之后,TS 适配器接收一个会转发至“SMS_SEND”指令的确认消息。 此后, “SMS_SEND”将会终止执行,且其状态会传送给调用者。 该状态仅确认 SMS 消息已经发送, 且不证实接收行为。 如果处理期间出现了错误,并导致处理的终止,则错误代码将被传送给“SMS_SEND”的调用 者。 调用“SMS_SEND” 在循环控制程序或时间控制程序中,都可以调用指令“SMS_SEND”。 调用“SMS_SEND”时,必须指定一个背景数据块。 "SMS_SEND" 必须调用多次,才能处理块功能。 这意味着,以“队列”方式依次调用 “SMS_SEND”是没有效果的。 块功能的结束由 BUSY = 0 表示。 通信连接的终止 “SMS_SEND”处于激活状态期间,如果 CPU 转变为 STOP 模式,则至 TS 适配器的通信连接将 会终止。 MPI 总线出现严重的通信问题(例如 CPU 关闭)时,也会丢失至 TS 适配器的通信 连接。 在这些情况下,TS 适配器不会丢弃已经传输至 TS 适配器的电话号码、服务中心号码和 SMS 消息。 TS 适配器将数据传输至无线调制解调器。 然而,TS 适配器会丢弃从无线调制解调器 处收到的确认消息。
TS 适配器处于上述状态期间,如果用户程序试图发送 SMS 至 CPU,则“SMS_SEND”会被终止, 并返回值 W#16#B10A。 此后,用户程序可以重复发送 SMS。 如果多个 CPU 试图同时通过 同一个 TS 适配器发送 SMS,则用户会收到返回值 W#16#B10A。 注意 更改 STEP 7 用户程序 只有 CPU 处于 STOP 模式时,才允许更改 STEP 7 用户程序中对“SMS_SEND”调用有直接影 响的程序部分。 这尤其涉及含有“SMS_SEND”调用的程序块的删除和替换操作。 如果忽略 这一限制,可能导致占用连接资源。 自动化系统可能变为用于非组态 S7 连接的通信指令 (“X_PUT (页 9426)”、“X_GET (页 9424)”、“X_SEND (页 9417)”、“X_RCV (页 9419)”、 “X_ABORT (页 9428)”)的某个未定义状态。 传输更改之后,需要对 CPU 执行一次暖启动或冷启动。 数据一致性 首次调用“SMS_SEND”的时候,功能块的输入参数将会被复制至内部缓冲区。在完成首次调用 (返回值为 W#16#7001)之前,请勿更改该数据,否则已传输的数据会不一致。 将 PIN 传输至无线调制解调器 如果使用了具备 PIN 检查功能的 SIM 卡,则在无线调制解调器的初始化阶段,就必须传输 PIN。 使用 TS 适配器的初始串(可以使用 TeleService 进行设置)可以实现这一操作。 如下 设置初始串(例如,PIN = 4711): • AT+CPIN="4711";AT&F..... 恢复通电时,TS 适配器执行一次发送操作,将串“AT+CPIN="4711”和无线调制解调器所使用 的 SIM 卡的 PIN 一起发送给所连接的组件。此后,无线调制解调器使用“AT&F...”完成初始化。 小心: PIN 错误时,在初始化期间并不报告,仅在发送 SMS 消息时才通过“SMS_SEND”的反 馈消息报告 PIN 错误。 发送传真 在实际号码前面添加网络运营商的特定号码(例如,“99”)之后,网络运营商可以将 SMS 转 换为传真,并将它发送至传真机。 这是网络运营商的服务,而不是 TS 适配器的功能。 将在参数 PHONE_NO 内输入添加了网络运营商前缀的传真号。 以下给出传真号为 07214711 的一个网络示例:发送电子邮件 通过拨通网络运营商的特定号码(例如,“8000”)并将电子邮箱地址附加在 SMS 消息之前, 就可以将 SMS 发送至电子邮箱地址。 这是网络运营商的服务,而不是 TS 适配器的功能。 需要将相应的号码输入参数 PHONE_NO (页 9444)。 在 SMS 消息中,电子邮箱地址附在消息的实际文本之前,并采用一个分隔符进行分隔。 这 将 SMS 有效内容的Zui大长度缩短了“电子邮箱地址 + 分隔符”的长度。 例如,分隔符可以 是空格(“ ”)或者冒号(“:”)。 某些服务提供商要求使用“*”代替“@”字符。 示例: • 文本 'CPU in STOP' 需要发送至电子邮箱地址“Surname*provider.com”。 • PHONE_NO = 8000 • MESSAGE = Surname*provider.comCPU in STOP 参数 指令“SMS_SEND”的参数如下表所示: 参数 声明 数据类型 存储区 说明 MPI_TS_ ADAPTER Input INT I、Q、M、D、L 或 常量 TS 适配器的 MPI 地址 PHONE_NO (页 9444) Input ANY D 指向数据字符串的引用,该字符串Zui大长 度为 31 个字符 SCENTER_NO (页 9444) Input ANY D 指向数据字符串的引用,该字符串Zui大长 度为 20 个字符 MESSAGE (页 9444) Input ANY D 指向数据字符串的引用,该字符串Zui大长 度为 160 个字符 BUSY (页 9445) Output BOOL I、Q、M、D、L • BUSY = 1:SMS 发送仍未完成。 • BUSY = 0:“SMS_SEND”处理已终止 STATUS (页 9445) Output INT I、Q、M、D、L “SMS_SEND”的返回值 有关有效数据类型的更多详细信息,请参见 "有效数据类型概述。虚拟块参数 EN、ENO 和 BR 位 仅在梯形图或者功能块图表示法中集成了“SMS_SEND”时,才会出现虚拟块参数 EN 和 ENO。 • 输入参数 EN: 块调用期间,逻辑运算结果(RLO)的状态保存在 BR 位中。 • 输出参数 ENO: 如果“SMS_SEND”的执行过程中未出现任何错误,则块调用结束时会再次恢复调用该块时 BR 位的状态。 如果通过输出参数 STATUS 输出了一个错误消息,则在退出“SMS_SEND”之前,将 BR 位立 即设置为“0”。 PHONE_NO 参数 (S7-300, S7-400) 说明 输入参数 PHONE_NO 指定发送 SMS 时所使用的目标电话号码。 输入时,请使用完整的电 话号码,包括国家代码、区域代码和用户号码。该字符串按原样传输至无线调制解调器。如 果使用了非数字字符,则应确保所使用的无线调制解调器支持这些字符。 参数 SCENTER_NO (S7-300, S7-400) 说明 输入参数 SCENTER_NO 指定要将 SMS 发送到的服务中心号码。 该字符串按原样传输至无线 调制解调器。 MESSAGE 参数 (S7-300, S7-400) 说明 输入参数 MESSAGE 将指定 SMS 消息。该消息使用“SMS_SEND”指令,通过 TS 适配器和 GSM 无线调制解调器传输至网络运营商。BUSY 参数 (S7-300, S7-400) 说明 "SMS_SEND" 指令为异步执行,也就是说,它的执行可以延长并跨越多个调用。 • 若输出参数 BUSY = 1,则“SMS_SEND”的内部状态通过输出参数 STATUS (页 9445) 进行 输出。 • 输出参数 BUSY = 0,表明该指令的执行已经完成。输出参数 STATUS (页 9445) 表明已完 成的作业是未出现任何错误(STATUS = W#16#0000)还是出现了错误。 STATUS 参数 (S7-300, S7-400) 说明 “SMS_SEND”的返回值分类如下: • W#16#0000:“SMS_SEND”已成功结束。 • W#16#7xxx:“SMS_SEND”的状态 • W#16#8xxx:当调用通信指令或“BLKMOV”指令时,即会报告错误。 • W#16#9xxx:调用“SMS_SEND”时的参数错误 • W#16#Bxxx:TS 适配器报告错误。 • W#16#Cxxx:无线调制解调器报告错误。 下表列出了“SMS_SEND”的返回值(不含所使用通信指令或者无线调制解调器的错误代码)。 返回值 (W#16#...) 说明 备注 0000 “SMS_SEND”已成功执行完毕。 7000 “SMS_SEND”已重置(同时终止与 TS 适配器的 通信)。 再次调用“SMS_SEND”。 7001 “SMS_SEND”已激活(首次调用, BUSY = 1)。该功能已经启动。 7002 “SMS_SEND”已激活(下次调用, BUSY = 1)。该功能的执行仍未完成。返回值 (W#16#...) 说明 备注 8xxx 或 8zxx “SMS_SEND”的执行已完成,且存在内部调用 的通信指令或者“BLKMOV”指令的一个错误代 码。 若错误消息是由指令“BLKMOV”发出,则意味 着: • z = 2 : 复制参数 PHONE_NO 至内部缓冲区 时出错 • z = 3 : 复制参数 SCENTER_NO 至内部缓冲 区时出错 • z = 4 : 复制参数 MESSAGE 至内部缓冲区时 出错 详细信息,请参见指令“BLKMOV”的描述和 通信指令的错误信息。 AUTOHOTSPOT 9001 PHONE_NO 的长度 = 0 或者 > 31 电话号码必须包含至少一个字符,且不得多 于 31 个字符。 9002 SCENTER_NO 的长度 = 0 或者 > 20 服务中心号码必须包含至少一个字符,且不 得多于 20 个字符。 9003 MESSAGE 的长度 = 0 或者 > 160 SMS 消息必须包含至少一个字符,且不得多 于 160 个字符。 B10A TS 适配器已经存储有一个作业,且 TS 适配器 正在处理该作业。 再次调用“SMS_SEND”。 B301 至 PG/PC 的远程连接仍在建立之中。 稍后再次调用“SMS_SEND”。 B302 TS 适配器直接连接至 PG/PC(直接连接)。 将 TS 适配器连接至 GSM 无线调制解调器。 B303 TS 适配器未连接无线调制解调器或者 PG/PC。 将 TS 适配器连接至 GSM 无线调制解调器。 B304 至无线调制解调器的接口当前没有准备好发送 SMS。 稍后再次调用“SMS_SEND”。 B614 在监测期间,已连接调制解调器不响应 SMS 专 用命令。 检查是否连接了 GSM 无线调制解调器。 稍后再次调用“SMS_SEND”。