组态具有 DATA 参数的 SMS 文本指令将 DATA 参数中 VARIANT 类型的指针所引用的数据作为 SMS 文本发送。 如果 SMS 文本的 DATA引用了数据类型为 STRING 的操作数,则前两个字节与字符串的长度 信息一同传送。 待发送的 SMS消息的正确文本表示的一个选项是使用转换函数 Strg_TO_Chars 将文本字符 串转换为 Array of BYTE 或Array of CHAR。EN 参数的 Strg_TO_Chars 通过 TC_SEND 链接到 输出参数 ENO。 对于 SMS文本,CP 并不支持所有特殊字符,例如元音变音(ü、ä 等)。规范 GSM 03.38 适 用。GSM 网络提供商可能施加了其它限制。代码 BUSY、DONE 和 ERROR 仅当 BUSY = 0 时,DONE 和 ERROR 的代码才相关。 BUSY DONEERROR 含义 0 0 0 没有任何作业在执行中 可以在下表中找到 DONE 和 ERROR 的所有其它代码组合。参数 声明数据类型 取值范围 说明 DONE OUTPUT BOOL 0:- 1:指令已成功执行 此状态参数指示是否已完成该作业且 未出错。**有关与参数 ERROR 和 STATUS 一起使 用时的含义,请参见该指令的代码。 ERROR OUTPUT BOOL 0:-1:错误 错误代码 有关与参数 DONE 和 STATUS 一起使 用时的含义,请参见该指令的代码。 STATUS OUTPUTWORD 状态代码 有关与参数 DONE 和 ERROR 一起使用 时的含义,请参见该指令的代码。 * 有关 SMS 文本 DATA参数的特性,请参见下一部分。 ** 发送帧后,TC_SEND 设置 DONE = 1。注意以下响应: 发送方仅在 1 至 2分钟后才会识别 ISO‑on‑TCP 连接的丢失情况。TC_SEND 已在发送方处设置 DONE = 1,但传送的数据也有可能丢失。 启动 TC_RECV 前,如果 ISO-on-TCP 连接在接收帧后中止,那么TC_SEND已在发送方处设置 DONE = 1,传送的 数据也可能丢失。
代码 DONE、ERROR 和STATUS 下表列出了根据 DONE、ERROR 和 STATUS 形成的条件代码,其中这些代码必须由用户程序 进行评估。 DONEERROR STATUS * 含义 1 0 0000H 已成功执行作业 0 0 7000H 无激活的作业处理(第一次指令调用) 0 07001H 已启动作业处理(第一次指令调用) 0 0 7002H 已激活作业处理(BUSY = 1 时重新执行指令调用) 0 18086H ID 值无效 0 1 80E0H 内部错误 如果将帧直接发送给遥控服务器(“Telecontrol”模式),请确保发送周期≥ 1 秒。 0 1 80E1H 超时: • 增加 CP 1242-7 组态中的“连接监视时间”(Connectionmonitoring time) 的 值或 • 检查连接伙伴。 0 1 80E4H 未知 ID: 首次调用 TC_CON。 0 180E6H 没有正在进行的查询(指令调用没有启动) 0 1 80E7H 未完全传送要发送的数据: 重复执行该作业。 0 1 80E8H无法访问远程伙伴。请检查连接参数。 在“GPRS 直接”模式下,如果伙伴可访问但未接受连接请求,则输出消息。 0 1 80E9H通过远程伙伴建立连接: 检查连接伙伴。如有必要,可通过 TC_DISCON 终止连接,并通过 TC_CON 再 次建立连接。 0 180EAH 远程伙伴发来错误消息: • 检查连接伙伴。在通信伙伴上启用“TC_RECV”指令。 • 如有必要,可通过TC_DISCON 终止连接,并通过 TC_CON 建立连接。DONE ERROR STATUS * 含义 0 1 80EFH无法发送 SMS: • 检查目标地址(目标用户的电话号码)是否存在。 • 检查插入的 SIM 卡是否允许发送 SMS。 •检查已发送的 SMS 文本的长度。不会发送长度大于 160 个字符的 SMS 文本。 • 确保在创建数据块 TCON_PHONE时,针对块访问选择了“标准”(Standard) 选项。 0 1 80F1H 在 CP 的 STEP 7 组态中未启用发送 SMS消息功能: 请在 CP 的组态中启用“允许 SMS”(Allow SMS) 选项。 0 1 80F4H 无法生成连接端点:检查连接伙伴。 0 1 80F5H 无效的连接端点: • TC_CON 建立连接失败。 或 • 远程伙伴终止了连接:首次调用TC_DISCON。 0 1 80F6H 调用数据块中的参数格式错误(长度错误、格式错误或值无效): 检查“TC_CON...”SDT的组态。 * 有关此处未列出的其它状态,请参见“RDREC”或“WRREC”指令状态显示中的两个中间状态字节(STATUS[2]、STATUS[3])。
TC_RECV:通过移动无线接收数据(S7-1200, S7-1500) 含义 TC_RECV 指令允许通过以下类型的编程连接接收数据: • ISO-ON-TCP 连接• SMS 连接 为接收 SMS 消息,必须在接收 CP 的 STEP 7 组态中组态发送方的电话号码(已授权的电话号码)。发送方必须支持 CLIP 功能。 必须在“TCON_PHONE”SDT 中输入连接伙伴的电话号码。 唤醒 SMS消息将被过滤掉。 • 遥控连接 说明 接收来自不同发送方的 SMS 消息 如果希望接收来自不同发送方的 SMS 消息,有两种选择: •组态多个连接 (TC_CON, TC_RECV, TC_DISCON)。 或 •当所需数据块“TCON_PHONE”的“PhoneNumber”参数中只有一个已组态连接时,可能不需要输入电话号码。收到消息后,对于所有授权的连接伙伴,此参数都将被解释为占位符。 有关这些连接类型的详细信息,请参见 TC_CON指令的说明。 ID 参数引用 GPRS 连接。该 ID 值必须与 TC_CON 使用的 ID 值一致。 INTERFACE参数引用所需本地 CP 的 GPRS 接口。其值必须与 TC_CON 针对 INTERFACE 使用 的值相同。 使用 LEN参数指定要接收的Zui大数据量。 在 DATA 中指定的数据区大小不得小于为 LEN 组态的字节数。DATA 中指定的数据区允许除BOOL 和 ARRAY of BOOL 以外的所有数据类型。如同发送伙伴已使用了相同的数据类型那样 来解释接收到的数据。TC_RECV 的连接描述所用的 DB(系统数据类型)必须与 TC_SEND 所用的 DB 不同。 存储 SMS 消息 接收到的SMS 消息保持性存储在 CP 1242-7(25 个存储空间)和 SIM 卡上(数量可变的存 储空间)。 • 通过 TC_RECV读取 SMS 消息由 后,该 SMS 消息将从其存储空间中删除。 • 如果已分配完所有存储空间,并且接收到新 SMS 消息,Zui早的SMS 消息将被删除。形参的说明 下表对 TC_RECV 指令的所有形参进行了说明 参数 声明 数据类型 取值范围 说明 EN_RINPUT BOOL 0:锁定数据接收 1:启用数据接收 启用/锁定数据接收。 • 块版本 1.1:从 1 设置到 0 后,块将处于未激活状态。 • 块版本 1.0:从 1 设置到 0 后,程 序块将接收数据(直到 DONE = 0 和 ERROR =0)。 注意关于 TC_CON 的状态代码 80E3 的信息。 ID INPUT CONN_OUC 1...07FFh对相关连接的引用 INTERFACE INPUT HW_INTERFA CE 引用 CP 1242‑7 的接口有关“硬件标识符”的信息,请参见 “TC_CON:通过移动无线建立连接 (页 6030)”部分。 LEN INPUTUINT 1...2048 要接收的数据的(Zui小)字节数,Zui 大值为 2048 DATA INOUT VARIANT 引用 CPU接收数据区的地址 * ENO OUTPUT BOOL 0:错误 1:无错误 使能输出 如果指令在运行期间出错,则设置 ENO = 0。RCVD_LEN OUTPUT UINT 已接收数据的字节数。参数 声明 数据类型 取值范围 说明 BUSY OUTPUT BOOL0:指令的执行未启动、已 完成或被中止 1:指令正在执行 显示指令的处理状态 DONE OUTPUT BOOL 0:-1:指令已成功执行 此状态参数指示是否已完成该作业且 未出错。 有关与参数 ERROR 和 STATUS 一起使用时的含义,请参见该指令的代码。 ERROR OUTPUT BOOL 0:- 1:错误 错误代码 有关与参数 DONE 和STATUS 一起使 用时的含义,请参见该指令的代码。 STATUS OUTPUT WORD 状态代码 有关与参数 DONE 和ERROR 一起使用 时的含义,请参见该指令的代码。 * 有关 SMS 文本 DATA 参数的特性,请参见下一部分。 组态具有DATA 参数的 SMS 文本 指令通过 DATA 参数中 VARIANT 类型的指针将接收到的 SMS 文本引用到 CPU的数据区。 如果 DATA 引用了 SMS 文本的数据类型为 STRING 的操作数,则 SMS 文本的前两个字节将被解释为数据类型为 STRING 的长度信息而不是 SMS 文本。 待接收的 SMS 消息的正确文本表示的一个选项是使用转换函数Chars_TO_Strg 将 Array of BYTE 或 Array of CHAR转换为文本字符串。EN 参数的 Chars_TO_Strg 链接到 TC_RECV 的输出参数 ENO。 对于 SMS 文本,CP并不支持所有特殊字符,例如元音变音(ü、ä 等)。规范 GSM 03.38 适 用。GSM 网络提供商可能施加了其它限制。 代码BUSY、DONE 和 ERROR 仅当 BUSY = 0 时,DONE 和 ERROR 的代码才相关。 BUSY DONEERROR 含义 0 0 0 没有任何作业在执行中 可以在下表中找到 DONE 和 ERROR 的所有其它代码组合。