创建模块程序 第九章
9-1
创建位控模块程序 9
EM253 位控模块是 S7200 的特殊功能模块 它能够产生脉冲串 用于步进电机和伺服电机的速度和位置的开环控制 它与 S7200 通过扩展的 I/O 总线通讯它带有八个数字输出 在 I/O的组态中作为智能模块位控模块能够产生移动控制所需的脉冲串 其组态信息存储在 S7200 的 V 存储区中为了简化您应用程序中位控功能的使用 STEP 7-Micro/WIN 提供的位控向导可在几分钟内完成对位控模块的组态 STEP 7- Micro/WIN 还提供一个控制面板可以控制 监控和测试您的位控操作本章内容位控模块的特性组态位控模块由位控向导生成的位控指令位控模块的例子程序通过 EM253 控制面板监控位控模块位控模块和位控指令的错误代码高级议题创建模块程序 第九章
9-2
位控模块的特性位控模块可提供单轴 开环移动控制所需要的功能和性能
¨ 提供高速控制 从每秒 12个脉冲至每秒 200 000个脉冲
¨ 支持急停 S 曲线 或线性的加速 减速功能
¨ 提供可组态的测量系统 既可以使用工程单位 如英寸或厘米 也可以使用脉冲数
¨ 提供可组态的 backlash 补偿
¨ 支持绝对 相对和手动的位控方式
¨ 提供连续操作
¨ 提供多达 25组的移动包络 Profile 每组最多可有 4 种速度
¨ 提供 4 种不同的参考点寻找模式 每种模式都可对起始的寻找方向和最终的接近方向进行选择
¨ 提供可拆御的现场接线端子便于安装和拆御图 9-1 EM253 位控模块使用 STEP 7-Micro/WIN可生成位控模块所使用的全部组态和移动包络信息创建模块程序 第九章
9-3
这些信息和您的程序块一起下载到 S7200 中 由于位控模块所需要的全部信息都存储在 S7200中 当您更换位控模块时不必重新编程或组态
S7200 在输出的过程映像区中 Q 区 保留 8 位作为位控模块的接口 S7200
的应用程序将使用这些位来控制位控模块的操作 这 8 个输出位与位控模块上的任何物理输出都不相连位控模块提供 5 个数字输入和 4 个数字输出与您的移动控制应用相连 见表 9-1
这些输入输出位于位控模块上 附录 A 提供了关于位控模块的详细指标 还包括位控模块与一些通用电机驱动器 /放大器的接线图表 9-1 位控模块的输入和输出信号 描述
STP STP 输入可让模块停止脉冲的生成 在位控向导中可选择您所需要的 STP
操作
RPS RPS 参考点切换 输入可为绝对移动操作建立参考点或 home 位置
ZP ZP 零脉冲 输入可帮助建立参考点或 home 位置 通常 电机驱动器 /
放大器每周产生一个 ZP脉冲
LMT+
LMT-
LMT+和 LMT-是移动位置的最大限制 位控向导中可以组态 LMT+和 LMT-
输入 open drain transistor
P0
P1
P0+ P0-
P1+ P1-
P0 和 P1 是漏型晶体管输出 用以控制电机的移动和方向 P0+ P0-以及
P1+ P1-是差分脉冲输出 与 P0 和 P1 的功能一样 但所提供的信号质量更好 漏型输出和差分输出同时有效 您可以根据电机驱动器 /放大器的接口要求来选择使用哪种输出
DIS DIS 是一个漏型输出 用来禁止或使能电机驱动器 /放大器
CLR CLR 是一个漏型输出 用来清除伺服脉冲计数器位控模块编程
STEP 7-Micro/WIN为位控模块的组态和编程提供便捷的工具 遵循以下步骤即可
1 组态位控模块 STEP 7- Micro/WIN 提供一个位控向导 可生成组态 /包络表和位控指令 有关组态位控模块的信息请参见 246页
2 测试位控模块的操作 STEP 7-Micro/WIN 提供一个 EM253 控制面板 用以测试位控模块的输入 输出接线组态以及移动路径的执行 有关 EM253
控制面板的信息见 274 页
3 创建 S7200 的执行程序 位控向导自动生成位控指令 您可以将这些指令插入您的程序中 有关位控指令的信息请参见 257 页 将以下指令插入您的用户程序当中
- 要使能位控模块 插入一个 POSx_CTRL 指令 用 SM0.0 始终接通以确保这条指令在每一个循环周期中都得到执行创建模块程序 第九章
9-4
- 要将电机移至一个指定的位置 使用一条 POSx_GOTO 或一条 POSx_
RUN 指令 POSx_GOTO 指令移动到您在程序中输入的指定位置
POSx_RUN 指令则按照您在位控向导中所组态的路线移动
- 要使用绝对座标进行移动 您必须为您的应用建立零位置 使用一条
POSx_RSEEK 或一条 POSx_LDPOS指令建立零位置
- 位控向导生成的其它指令为典型应用提供功能 对于您特定的应用来说 这些指令是可选的
4 编译您的程序并将系统块 数据块和程序块下载到 S7200中组态位控模块要进行位移控制必须为位控模块创建组态 /包络表 位控向导引导您一步一步完成整个组态过程 非常便捷 有关组态 /包络表的详细信息请参考 278 页的高级议题使用位控向导可离线创建组态 /包络表 您可以在不连接 S7200CPU及位控模块的情况下进行组态要运行位控向导 必须对项目进行编译并选择符号寻址方式启动位控向导 可以点击浏览条中的工具图标 然后双击位控向导图标 或者选择菜单命令 Tools>Motion Control Wizard
图 9-2 位控向导位控向导创建模块程序 第九章
9-5
输入位控模块的位置您必须输入模块类型和位置以便定义模板参数并为您的应用定义移动包络 位控向导可自动读取智能模块的位置 从而减化了这个任务 您只需点击读模块按钮对于硬件版本 1.2 之前的 S7200 CPU 智能模块必须安装在紧邻 CPU 的位置以便使用位控向导对模块进行组态选择测量类型您必须选择测量系统 以便在整个组态中使用 您可以选择使用工程单位或脉冲 如果您选择脉冲则不必再定义其它信息 如果选择工程单位 您必须输入以下数据 使电机转一周所需的脉冲数 参考电机或驱动的参数 测量的基本单位 如英寸 英尺 米或厘米 以及电机转一周所引起的位移量 或 单位 STEP 7-Micro/WIN 提供一个 EM253控制面板 对已组态的位控模块通过该面板可修改每周的单位数如果您在以后改变了测量系统 必须删除整个组态 包括位控向导生成的所有指令 您必须输入与新的测量系统一致的选项编辑缺省的输入和输出组态位控向导提供一个高级选项 利用这个选项 您可以对位控模块的输入和输出的缺省组态进行查看和编辑
¨ 输入激活等级标签可改变激活的等级设置 等级设为高时 当输入有电流时 读到逻辑 1 等级设为低 当输入无电流时 读到逻辑 1 逻辑 1 总是解释为条件激活 不论激活等级是怎样的 缺省 =active high 输入有电流时 LED灯亮
¨ 输入滤波时间标签可用来为 STP RPS LMT+ LMT-输入的滤波定义时延 范围为 0.20ms 至 12.80ms 时延可帮助滤除输入接线上的噪声以免除输入状态的 inadverteal 改变
¨ 脉冲和方向输出标签可用来指定控制方向的方式 您必须首生指定输出的极性选择正极性对于使用正极性的应用 选择下列方式之一 见图 9-3 以配合您的驱动以及移动的方位
¨ 位控模块从 P0发出正转脉冲 从 P1 发出反转脉冲创建模块程序 第九章
9-6
¨ 位控模块从 P0发脉冲 正转时 模块接通 P1输出 反转时关断 P1 输出这是缺省设置图 9-3 正极性的转向选项选择负极性对于使用负极性的应用 选择下列方式之一 见图 9-4 以配合您的驱动和移动的方位
¨ 位控模块从 P0发出反转脉冲 从 P1 发出正转脉冲
¨ 位控模块从 P0发脉冲 正转时断开 P1输出 反转时接通 P1 输出图 9-4 负极性的转向选项组态模块对物理输入的响应您必须指定位控模块对每个 LMT+开关 LMT-开关以及 STP 输入的响应 无动作 忽略输入条件 减速至停止 缺省 或立即停止警告控制设备可能在不安全条件下出现故障 并可能导致被控设备不可预知的操作这些不可预知的操作可能导致人员的伤亡以及 /或设备的损坏位控模块的限位和停止功能是电逻辑实现的 不能够提供机电控制所能提供的保护等级 请考虑使用独立于 S7200 CPU 和位控模块的急停功能 机电
Overrides 或冗余的 Safeguands
输入最大速度和趋动 /停止速度您必须为您的应用定义最大速度和起动 /停止速度创建模块程序 第九章
9-7
¨ MAX_SPEED 该数值是您的应用中操作速度的最大值 它应在电机力矩能力的范围内 驱动负载所需的力矩由摩擦力 惯性 ertia 以及加速 /减速时间决定 位控向导根据指定的 MAX_SPEED 计算并显示位控模块所能控制的最小速度
¨ SS_SPEED 输入该数值满足您的电机在低速时驱动负载的能力 如果
SS_SPEED 的数值过低 电机和负载在运动的开始和结束时可能会摇摆或颤动 如果 SS_SPEED 值过高 电机会在起动时丢失脉冲 并且负载在试图停止时会过度驱动电机速度距离图 9-5 最大速度和起动 /停止速度在电机的数据单中 对于电机和给定负载 有不同的方式定义起动 /停止 或拉入 /拉出 速度 通常 SS_SPEED 值是 MAX_SPEED值的 5%至 15% SS_SPEED
值必须大于根据您指定的 MAX_SPEED值而显示出来的最小速度请参考电机的数据单 为您的应用选择正确的速度图 9-6 所示为典型的电机力矩 /速度曲线图 9-6 典型电机力矩 速度曲线电机力矩与速度特性驱动负载所需力矩电机力矩该负载的起动 /停止速度
SS_SPEED
电机速度电机能够驱动该负载的最大速度
MAX_SPEED 不应超过该值起动 /停止速度与力矩当负载惯性增加时 该曲线向低速移动创建模块程序 第九章
9-8
输入拖动参数拖动命令用于将工件以手动方式移动到指定位置 使用位控向导 可以指定以下拖动参数值
¨ JOG_SPEED JOG_SPEED 电机的拖动速度 是 JOG 命令有效时能够得到的最大速度
¨ JOG_INCREMENT 是瞬间的 JOG命令能够将工件移动的距离图 9-7 所示为拖动命令的操作 当位控模块收到一个托动命令后 它启动一个定时器 如果拖动命令在 0.5秒到时之前结束 位控模块则以定义的 SS_SPEED
速度将工件移动 JOG_INCREMENT 数值指定的距离 当 0.5 秒到时时 拖动命令仍然是激活的 位控模块加速至 JOG_SPEED 速度 继续移动直至拖动命令结束 位控模块随后减速停止 您可以在 EM253 控制面板中使能拖动命令或者使用位控指令图 9-7 JOG 操作的说明输入加速和减速时间作为位控模块组态的一部分 您必须设置加速和减速时间 加速时间和减速时间的缺省设置都是 1 秒 通常 电机可在小于 1 秒的时间内工作 您要以毫秒为单位进行时间设定
¨ ACCEL_TIME 电机从 SS_SPEED 速度加速到 MAX_SPEED速度所需的时间缺省值 =1000ms
¨ DECEL_TIME 电机从 MAX_SPEED 减速到 SS_SPEED 所需要的时间缺省值 =1000ms
创建模块程序 第九章
9-9
图 9-8 加速和减速时间揭示电机的加速和减速时间要经过测试来确定 开始时 您应在位控向导中输入一个较大的值 在作应用测试时 你可以使用 EM253 控制面板按照需要调整该数值 逐渐减少这个时间值直至电机开始停止 从而优化您应用中的这些设置输入急停时间急停时间通过减小移动包络中加速和减速部分的急停 改变率 来平滑移动控制 见图 9-9 减少急停能够改善位置追踪的性能 急停时间也被称为 S 曲线包络 急停只能用于简单的单步包络 这种补偿同样地作用于加速曲线和减速曲线的开始和结束部分 急停补偿不能够应用在介于零速和 SS_SPEED 速度之间的初始步和结束步上您可以输入一个时间值 JERK_TIME 来指定急停补偿 这一时间是加速度的改变从零到最大所需要的时间 由参数 MAX_SPEED SS_SPEED 和 ACCEL_
TIME 或与之相等的 DECEL_TIME 未定义 与只是简单地增加 AccEL_TIME
和 DECEL_TIME 相比 一个较长的急停时间由于能够对整个循环时间只有一个较小的增加 从而可产生平滑的操作 零值代表没有补偿缺省 =0ms
创建模块程序 第九章
9-10
速度图 9-9 加速和减速时间提示对于 JERK_TIME 来说 一个好的初始值是 ACCEL_TIME 的 40%
组态参考点和参考点寻找参数如果您的应用指定从一个绝对位置开始移动 您必须指定物理系统中的一个已知点作为参考点 RP 该点要与位置测量系统相吻和 参考点的缺省设置是零位置您可以通过组态参考点寻找 RP 寻找 参数来控制您的移动应用如何寻找 RP
RP 可以位于 RPS 有效区的中央 也可以位于 RPS 有效区的两边 或者 RP 可以位于从 RPS 有效区边缘开始的若干数量的零脉冲 ZP 之后的位置 位控模块提供一个外部参考点开关 RPS 传感器 用于寻找 RP 组态 RP 您要输入以下信息
¨ 为电机指定寻找 RP 的速度
- RP_FAST 是模块执行 RP 寻找命令的最初的速度 通常 RP_FAST 是
MAX_SPEED的 2/3左右
- RP_SLOW 是接近 RP 的最终的速度 通常使用一个较慢的速度去接近 RP 以免错过 RP_SLOW 的典型值为 SS_SPEED
¨ 为 RP 的寻找指定初始寻找方向 RP_SEEK_DIR 和最终接近方向
RP_APPR_DIR 分为正向和反问
- RP_SEEK_DIR 是 RP 寻找操作最初的方向 通常 这个方向是从工作区到 RP 附近 限位开关在确定 RP 的寻找区域时扮演重要角色 当执行 RP 寻找操作时 遇到限位开关会引起方向反转 使寻找能够继续下去 缺省 =反向距离创建模块程序 第九章
9-11
- RP_APPR_DIR 是最终接近 RP 的方向 为减少反冲击和提供更高的准确性 RP_APPR_DIR 按照正常工作循环中的方向移动 缺省 =正向位控向导提供高级参考点选项 可以指定一个 RP 偏移量 RP_OFFSET 这个偏移量是指从 RP 到零位置的距离 见图 9-10 以 RPS 为参考确定一个准确的位置作为 RP 组态 RP 偏移量 您要输入以下数值
¨ RP_OFFSET 在物理的测量系统中 RP 到零位置之间的距离 缺省 =0
¨ 反撞击补偿 当方向发生变化时 为消除系统中的滞慢 反撞击 电机必须移动的距离 反撞击补偿总是正值 缺省 =0
图 9-10 RP 与零位置的关系组态 RP 寻找顺序您可以为位控模块组态参考点寻找的顺序 图 9-11 所示为一个简化了的缺省的
RP 寻找顺序图 您可以为 RP 搜寻顺序作以下选择
¨ RP 寻找模式 0 不执行 RP 寻找顺序
¨ RP 寻找模式 1 RP位于 RPS 输入在接近工作区的一边开始有效的位置上
¨ RP 寻找模式 2 RP位于 RPS 输入有效区的中央
¨ RP 寻找模式 3 RP位于 RPS 输入有效区之外 RP_Z_CNT 指定了在 RPS
失效之后应接收多少个 ZP 零脉冲 输入计数
¨ RP 寻找模式 4 RP通常位于 RPS 输入的有效区内 RP_Z_CNT指定在 RPS
激活后应接收多少个 ZP 零脉冲 输入计数工作区零位置创建模块程序 第九章
9-12
图 9-11 缺省的 RP 搜寻顺序 简化 的更多的关于位控模块不同的 RP 寻找顺序的信息 请参见 254 页至 255 页的图
9-14 至 9-17
组态位控模块的移动包络一个包络是一个预先定义的移动描述 它包括一个或多个速度 影响着运动从起点到终点 即使不定义包络也可以使用模块 位控向导为您提供了一个条子程序指令 POSx_GOTO 可用于移动控制
¨ 包络数 您最多可选择 25个包络
¨ 命令字节的地址 您必须为位控模块输入一个输出 Q 区地址作为命令字节 确定该 Q 区地址可计算 S7200位控模块之前所有实际的 I/O 模块所占用的输出字节
¨ 组态 /包络表的地址 您必须为组态 /包络表输入起始的存储区地址 以存储位控模块的组态数据以及所有包络的数据 位控模块的组态数据需要 92
字节的 V 存储区 每一个包络需要 34 字节的 V 区 例如 一个带有一个包络的位控模块其组态 /包络表所需占用的 V 区数量是 126 字节位控向导能够向您建议一个大小合适的未经使用的 V 区地址定义移动包络位控向导提供移动包络定义 在这里 您可以为您的应用定义每一个移动包络对每一个包络 您可以选择操作模式并为每个包络的各步定义指标 位控向导中可以为每个包络定义一个符号名 其作法是在您定义包络时为其输入一个符号名即可 当您完成包络的组态后 可以存储组态并将参数打印出来
RP 寻找模式 1
RP 寻找方向
RP 接近方向有效 有效工作区创建模块程序 第九章
9-13
选择包络的操作模式您要按照操作模式对包络进行组态 是绝对位置还是相对位置 是单一速度的连续转动还是以两种速度连续转动 图 9-12 所示为不同的操作模式图 9-12 位控模块的模式选择创建包络中的步一个步是工件移动的一个固定距离 包括加速和减速时间内的距离 每个包络最多可有 4 个步您要为每个步指定目标速度和结束位置 如果不止一步 只需点击新一步标签
New Step 并输入包络中每一步的信息 图 9-13 所示为四种可能的包络当然还有其它可能的组合点击步骤画图标签 Plot Step 您能够看到由位控向导计算 以图形方式表达出来的步 这样 您就能够很容易地随时浏览并编辑每一个步图 9-13 移动包络示例绝对位置 单速连续转动 带有触发停止的单速连续转动达到目标速度 RPS 信号停止
0 起始位置 结束位置 由您的程序控制直至有其它命
零位置 令发出 如放弃相对位置 两速连续转动
RPS 未激活时的目标速度 RPS 激活时的目标速度起始位置 结束位置
从起点测起单步包络 两步包络三步包络 四步包络创建模块程序 第九章
9-14
完成对位控模块的组态当您完成对位控模块的组态时 只需点击完成 Finish 然后位控向导会执行以下任务
¨ 将模块的组态和包络表插入到你的 S7200 程序的数据块中
¨ 为位控参数生成一个全局符号表
¨ 在项目的程序块中增加位控指令子程序 您可在应用中使用这些指令要修改任何组态或包络信息 您可以再次运行位控向导提示由于位控向导修改了程序块 数据块和系统块 要确保这三种块都下载到 S7200
CPU 中 否则 位控模块可能会无法得到操作所需的所有程序组件理解位控模块所支持的 RP 寻找模式下列各图是每种 RP 寻找模式的不同选项的示意图
¨ 图 9-14所示是 RP 寻找模式 1 的选项 这种模式将 RP 定位在 RPS 输入开始激活 并且靠近工作区的这端
¨ 图 9-15所示是 RP 寻找模式 2 的选项 这种模式将 RP 定位在 RPS 输入有效区域的中央
¨ 图 9-16所示是 RP 寻找模式 3 的选项 这种模式将 RP 定位在 RPS 输入有效区域之外一个指定数量的零脉 ZP 处
¨ 图 9-17所示是 RP 寻找模式 4 的选项 这种模式将 RP 定位在 RPS 输入有效区域内一个指定数量的零脉 ZP 处对于每一种模式都有 RP 寻找方向和 RP 接近方向的四种组合 这些组合决定了
RP 寻找操作的模式 对每一种组合 又有四种不同的起始点
1 RP 寻找操作从工作区内开始
2 RP 寻找操作从 RPS 有效区内开始
3 RP 寻找操作从限位开关区域内开始 LIM+或 LIM-
4 RP 寻找操作从其它的一些区域开始每个图中的工作区域都已确定 以便使从参考点到工作区的移动与 RP 接近方向一样 以这种方式选择工作区域 机械齿轮系统中的所有反向撞击都能够在参考点寻找后 向工作区的第一次移动中去除创建模块程序 第九章
9-15
图 9-14 RP 寻找模式 1
图 9-15 RP 寻找模式 2
缺省组态
RP 寻找方向 反向
RP 接近方向 正向
正向运动
反向运动
RP 寻找方向 正向
RP 接近方向 反向
正向运动
反向运动工作区
RPS有效 LIM+
有效
LIM -
有效
RPS有效工作区缺省组态
RP 寻找方向 反向
RP 接近方向 正向
正向运动
反向运动
RP 寻找方向 正向
RP 接近方向 反向
正向运动
反向运动
LIM -
有效
RPS有效工作区
LIM+
有效
RPS有效工作区创建模块程序 第九章
9-16
图 9-16 RP 寻找模式 3
图 9-17 RP 寻找模式 4
缺省组态
RP 寻找方向 反向
RP 接近方向 正向
正向运动
反向运动
RP 寻找方向 正向
RP 接近方向 反向
正向运动
反向运动缺省组态
RP 寻找方向 反向
RP 接近方向 正向
正向运动
反向运动
RP 寻找方向 正向
RP 接近方向 反向
正向运动
反向运动工作区
RPS
有效
LIM+
有效
LIM -
有效
RPS
有效
工作区
ZP 脉冲数
ZP 脉冲数工作区
RPS有效 LIM+
有效
LIM -
有效
RPS有效
工作区
ZP 脉冲数
ZP 脉冲数创建模块程序 第九章
9-17
选择工作区位置消除 Backlash
图 9-18所示为工作区与参考点 RP RPS 有效区以及限位开关 LIM+和 LIM-
之间在接近方向上能够消除 backlash 的关系 图中的第二部分工作区的位置不能够消除 backlash 图 9-18 所示为 RP 寻找模式 3 其它的 RP 寻找模式的每个搜寻顺序也可以有类似的工作区位置 但不推荐图 9-18 消除 Backlash 和未消除 Backlash 的工作区位置
Backlash消除
RP 寻找方向 反向
RP 接近方向 反向
正向运动
反向运动工作区
RPS
有效
LIM+
有效
LIM -
有效
RPS
有效
工作区
Backlash未消除
RP 寻找方向 反向
RP 接近方向 反向
正向运动
反向运动创建模块程序 第九章
9-18
由位控向导生成的位控模块位控向导能够根据位控模块的位置和您对模块所作的组态生成唯一的指令子程序 从而使位控模块的控制变得非常容易 每条位控指令都有一个前辍 POSx_
这里 X 是模块位置 由于每个位控指令是一个子程序 11 条位控指令使用 11
个子程序提示位控指令使用户程对存储空间的需求最多增加至 1700 字节 您可以删除不用的位控指令以减小对存储空间的需求 要恢复已删除的位控指令 只需再次运行位控向导即可位控指令使用指南您必须确保在同时只有一条位控指令是激活的您可以在一个中断程序中执行 POSx_RUN 和 POSx_GOTO 但是 当模块正忙于处理其它命令时 千万不要试图在中断程序中启动指令 如果你在一个中断程序中启动一条指令 你可以使用 POSx_CTRL 指令的输出来监控位控模块是何时完成运动的位控向导按照您所选的测量系统自动组态速度参数 Speed 和 C_Speed 和位置参数 Pos 或 C_Pos 的数值 对于脉冲 这些参数是 DINT 对于工程单位这些参数是您所选的单位的 REAL 值 例如 选厘米 cm 为单位 位控参数则存为以厘米为单位的一个 REAL 值 实数值 速度参数则选一个每秒荐干厘米的实数值 cm/sec.
以下是特定的运动控制任务所需的位控指令
¨ 在您的用户程序中插入 POSx_CTRL 并以 SMO.0 为条件使之每个循环都执行
¨ 要指定运动到一个绝对位置 您必须首先使用 POSx_RSEEK 或
POSx_LDPOS 指令建立零位置
¨ 要移动到某个特定位置 根据您程序中的输入 使用 POSx_GOTO 指令
¨ 要运行您在位控向导中所组态的运动包络 使用 POSx_RUN指令其它位控指令是可选的创建模块程序 第九章
9-19
POSx_CTRL指令
POSx_CTRL指令在 S7200 每次转换为 RUN 模式时自动向位控模块发出命令装载组态 包络表 从而实现对位控模块的使能和初始化这条指令在您的项目中只使用一次 并且确保您的用户程序在每一循环中调用该指令 使用 SMO.0 常通 作为 EN参数的输入
EN 参数必须为接通状态以确保其它位控指令发送命令给位控模块 如果 EN 参数为断开状态 位控模块放弃所有正在进行当中的模块
POSx_CTRL指令的输出参数提供位控模块当前的状态当位控模块完成所有指令后 参数 Done 接通参数 Error包含指令的执行结果 错误代码的定义请参见 276 页表 9-13
参数 C-Pos 是模块的当前位置 基于测量的单位 该值可以是一个脉冲数
DINT 或者工程单位数 REAL
参数 C-Speed 提供模块的当前速度 如果您组态模块的测量系统是脉冲 C-
Speed 是一个每秒脉冲数的长整数 DINT 如果您组态测量系统工程单位
C_Speed是一个每秒若干个所选工程单位数的实数 REAL
参数 C-Dir指示电机的当前方向表 9-2 POSx_CTRL 指令的参数输入 输出 数据类型 操作数
MOD_EN BOOL I,Q,V,M,SM,S,T,C,L,Power Flow
Done,C_Dir BOOL I,Q,V,M,SM,S,T,C,L
Error BYTE IB,QB,VB,MB,SMB,SB,LB,AC,*VD,*AC,*LD
C_Pos,C_Speed DINT,
REAL
ID,QD,VD,MD,SMD,SD,LD,AC,*VD,*AC,
*LD
提示位控模块只在上电时或接到装载组态的命令时读取组态 包络表
¨ 当使用位控向导修改组态时 POSx_CTRL指令自动命令位控模块在 S7200
CPU 转为 RUN模式时装载组态 包络表
¨ 如果使用 EM253 控制面板修改组态 点击刷新组态按钮命令位控模块装载新的组态 包络表
¨ 如果您用其它方式修改了组态 那么您必须向位控模块发出一条重新装载组态的命令使它装载组态 包络表 否则 位控模块继续使用的组态 包络表创建模块程序 第九章
9-20
POSx_MAN指令
POSx_MAN指令 手动 模式 将位控模块置于手动模式 这种模式下 电机可以不同的速度沿正向或反向拖动 当 POSx_MAN 指令使能时 只能运行
POSx_CTRL和 POSx_DIS 指令
RUN JOG_P 或 JOG_N 的输入你只能同时使能一个使能 RUN RUN Stop 参数则命令位控模块按指定方向 参数 Dir 加速到指定速度 参数 Speed 你可以在电机运行时改变速度值 但参数 Dir 必须保持恒定 禁止参数 RUN则命令位控模块减速至电机停止使能参数 JOG_P 拖动正转 或 JOG_N 拖动反转 命令位控模块沿正向或反向拖动如果 JOG_P 或 JOG_N有效的时间短于 0.5 秒 位控模块则以出脉冲运动
JOG_INCREMENT 所指定的距离 如果 JOG_P 或 JOG_N 的有效时间等于或长于 0.5秒 位控模块则开始加速到 JOG_SPEED所指定的速度参数 Speed 决定 RUN 使能时的速度 如果位控模块的测量系统组态为脉冲该速度是一个每脉若干脉冲数的长态数值 DINT 若位控模块的测量系统组态为工程单位 该速度是一个每脉若干单位的实数值 REAL 电机运行时可以修改该速度参数参数 Dir 决定 RUN 使能时的运动方向 当 RUN使能时 不能修改该方向参数参数 Error包含指令的执行果 错误代码的定义请参见 276页表 9-13
参数 C-POS 包含模块的当前位置 基于所选的测量系统 该值可以是每秒脉冲数 DINT 或每秒工程单位数 REAL
参数 C_Dir指示电机的当前方向表 9-3 POSx_MAN 指令的参数输入 输出 数据类型 操作数
RUN,JOG_P,JOG_N BOOL I,Q,V,M,SM,S,T,C,L,Power Flow
Speed DINT,REAL ID,QD,VD,MD,SMD,SD,LD,AC,*VD,
*AC,*LD,Constant
Dir,C_Dir BOOL I,Q,V,M,SM,S,T,C,L
Error BYTE IB,QB,VB,MB,SMB,SB,LB,AC,*VD,AC,
*LD
C_Pos,C_Speed DINT,REAL ID,QD,VD,MD,SMD,SD,LD,AC,*VD,
*AC,*LD
创建模块程序 第九章
9-21
POSx_GOTO 指令指令 POSx_GOTO命令位控模块走到指定位置接通 EN位使能该指令 确保 EN位始终保持接通直到 DONE 位指示指令完成接通参数 START 向位控模块发送一个 GOTO 命令 当参数 START 接通且位控模块不忙时 每一循环向位控模块发送一条 GOTO 命令 要确保只发送一条
GOTO命令 使用边沿检测来触发 START参数参数 POS 包含一个表示运动位置 对于绝对运动 或运动距离 对于相对运动的值 基于所选的测量系统 该值可以是一个脉冲数 DINT 或工程单位数
REAL
参数 Speed 决定了运动的最大速度 基于测量单位 该值可以是每秒脉冲数
DINT 或每秒工程单位数 REAL
参数 Mode 可选择运动类型
0 绝对位置
1 相对位置
2 单速连续正向转动
3 单速连续负向转动当位控模块完成该指令时 参数 Done 接通参数 Error包含指令的结果 错误代码的定义请参见 276页的表 9-13
参数 C_POS 包含模块的当前位置 基于测量单位 该值可以是一个脉冲数
DINT 或是工程单位数 REAL
参数 C_Speed 包含模块的当前速度 基于测量系统 该值可以是一个每秒脉冲数 DINT 或是每秒工程单位 REAL
表 9-4 POSx_GOTO指令的参数输入 输出 数据类型 操作数
RUN,JOG_P,JOG_N BOOL I,Q,V,M,SM,S,T,C,L,Power Flow
Speed DINT,REAL ID,QD,VD,MD,SMD,SD,LD,AC,*VD,
*AC,*LD,Constant
Dir,C_Dir BOOL I,Q,V,M,SM,S,T,C,L
Error BYTE IB,QB,VB,MB,SMB,SB,LB,AC,*VD,AC,
*LD
C_Pos,C_Speed DINT,REAL ID,QD,VD,MD,SMD,SD,LD,AC,*VD,
*AC,*LD
创建模块程序 第九章
9-22
POSx_RUN 指令
POSx_RUN 指令 运行包络 命令位控模块执行存储在组态 包络表中的某个包络的运动操作接通 EN位可使能该指令 确保 EN 位保侍接通直至 Done位指示该指令完成接通参数 START 发送一个 RUN 命令给位控模块 每一循环周期 只要 START
参数接通且位控模块不忙 该指令发送一个 RUN命令给位控模块 要保证该命令只发一次 使用边沿检测指令以脉冲触发 START参数接通包络参数包含该运动包络的号码或符号名 你也可以选择高级运动命令 118
至 127 有关运动命令的信息 请参见 284页表 9-19
接通参数 Abort 命令位控模块停止当前的包络并减速直至电机开始停下参数 Error包含指令的执行结果 错误代码的定义请参见 276 页表 9-13
参数 C_Profile 包含位控模块当前正在执行的包络参数 C_Step 包含当前正在执行的包络的步参数 C_Pos 包含模块的当前位置 基于测量单位 该值可以是一个脉冲数
DINT 或工程单位数 REAL
参数 C_Speed 包含模块的当前速度 基于测量单位 该值可以是一个每秒脉冲数 DINT 或一个每秒工程单位数 REAL
表 9-5 POSx_RUN 指令的参数输入 输出 数据类型 操作数
RUN,JOG_P,JOG_N BOOL I,Q,V,M,SM,S,T,C,L,Power Flow
Speed DINT,REAL ID,QD,VD,MD,SMD,SD,LD,AC,*VD,
*AC,*LD,Constant
Dir,C_Dir BOOL I,Q,V,M,SM,S,T,C,L
Error BYTE IB,QB,VB,MB,SMB,SB,LB,AC,*VD,AC,
*LD
C_Pos,C_Speed DINT,REAL ID,QD,VD,MD,SMD,SD,LD,AC,*VD,
*AC,*LD
POSx_RSEEK 指令
POSx_RSEEK 指令 寻找参考点位置 触发一个参考点寻找操作 使用组态包络表中的搜寻方式 当位控模块锁定参考点并且运动停止后 位控模块装载参数 RP_OFFSET 的值作为当前位置
RP_OFFSET 的缺省值是 0 使用位控向导 EM253 控制面板或 POSx_LDOFF
装载偏移量 指令可以改变 RP_OFFSET值创建模块程序 第九章
9-23
接通 EN位可使能该指令 确保 EN 位保持接通直至 Done位指示该指令完成接通参数 START 则向位控模块发送一条 RSEEK 命令每一循环周期 当参数 START 接通且模块不忙 该指令向位控模块发送一条
RSEEK 指令 要确保该指令发送一次 使用边沿检测以脉冲触发参数 START
接通模块完成该指令时 参数 Done接通参数 Error包含该指令的结果 错误代码的定义请参见 276页表 9-13.
表 9-6 POSx_RSEEK指令的参数输入 输出 数据类型 操作数
RUN,JOG_P,JOG_N BOOL I,Q,V,M,SM,S,T,C,L,Power Flow
Speed DINT,REAL ID,QD,VD,MD,SMD,SD,LD,AC,*VD,
*AC,*LD,Constant
Dir,C_Dir BOOL I,Q,V,M,SM,S,T,C,L
Error BYTE IB,QB,VB,MB,SMB,SB,LB,AC,*VD,AC,
*LD
C_Pos,C_Speed DINT,REAL ID,QD,VD,MD,SMD,SD,LD,AC,*VD,
*AC,*LD
POSx_LDOFF指令
POSx_LDOFF 指令 装载参考点偏移量 建立一个新的零位置 它与参考点位置不在同一处执行这条指令之前 必须首先决定参考点位置 还要把机器移动到起始位置当该指令发送 LDOFF 命令时 位控模块计算起始位置 当前位置 与参考点之间的偏移量 然后 模块将计算所得的偏移量存为参数 RP_OFFSET 的值并将当前位置没为 0 这样就将起始位置设置为零位置如果出现故障 电机找不到它的位置了 如 掉电或电机被手动重新定位可以使用 POSx_RSEEK 指令自动地重建零位置接通 EN位可使能该指令 确保 EN 位保持接通直至 Done位指示该指令完成接通参数 START 则向位控模块发送一条 LDOFF 命令 每一循环周期 只要参数 START 接通且位控模块不忙 该指令向位控模块发送一条 LDOFF 命令 要确保该命令只发送一次 使用边沿检测以脉冲触发参数 START 接通模块完成该指令时 参数 Done接通参数 Error包含该指令的结果 错误代码的定义请参见 276页的表 9-13
创建模块程序 第九章
9-24
表 9-7 POSx_LDOFF 指令的参数输入 输出 数据类型 操作数
RUN,JOG_P,JOG_N BOOL I,Q,V,M,SM,S,T,C,L,Power Flow
Speed DINT,REAL ID,QD,VD,MD,SMD,SD,LD,AC,*VD,
*AC,*LD,Constant
Dir,C_Dir BOOL I,Q,V,M,SM,S,T,C,L
Error BYTE IB,QB,VB,MB,SMB,SB,LB,AC,*VD,AC,
*LD
C_Pos,C_Speed DINT,REAL ID,QD,VD,MD,SMD,SD,LD,AC,*VD,
*AC,*LD
POSx_LDPOS 指令
POSx_LDPOS 指令 装载位置 改变位控模块的当前位置值 你也可以使用这条指令为绝对运动命令建立一个新的零位置接通 EN位可使能该指令 确保 EN 位接通直至 Done 位指示该指令完成接通参数 START 则向位控模块发送一条 LDPOS 命令 每一循环周期 参数
START 接通且位控模块不忙 该指令向位控模块发送一条 LDPOS 命令 要确保该命令只发送一次 使用边沿检测以脉冲触发参数 START接通参数 New_Pos 提供一个新值替换位控模块在绝对运动中报告并使用的当前位置值 基于测量单位 该值可以是一个脉冲数 DINT 或是工程单位数 REAL
模块完成该指令时 参数 Done接通参数 Error包含该指令的结果 错误代码的定义请参见 276页表 9-13
参数 C_Pos 包含模块的当前位置 基于测量单位 该值可以是一个脉冲数
DINT 或是工程单位数 REAL
表 9-8 POSx_LDPOS 指令的参数输入 输出 数据类型 操作数
RUN,JOG_P,JOG_N BOOL I,Q,V,M,SM,S,T,C,L,Power Flow
Speed DINT,REAL ID,QD,VD,MD,SMD,SD,LD,AC,*VD,
*AC,*LD,Constant
Dir,C_Dir BOOL I,Q,V,M,SM,S,T,C,L
Error BYTE IB,QB,VB,MB,SMB,SB,LB,AC,*VD,AC,
*LD
C_Pos,C_Speed DINT,REAL ID,QD,VD,MD,SMD,SD,LD,AC,*VD,
*AC,*LD
POSx_SRATE 指令
POSx_SRATE指令 设置速率 命令位控模块改变加速 减速和急停时间创建模块程序 第九章
9-25
接通 EN位使能该指令 确保 EN位接通直至 Done位指示该指令完成接通参数 START 则将新的时间值拷贝到组态 包络表并向位控模块发送一条
SRATE 命令 每一循环周期 当 START 参数接通并且模块不忙时 该指令发送一条 SRATE 命令到位控模块 要确保该命令只发送一次 使用边沿检测以脉冲触发参数 START接通参数 ACCEL-Time DECEL_Time 和 JERK_Time 决定新的加速时间 减速时间和急停时间 单位为毫秒 ms
模块完成该指令时 参数 Done接通参数 Error包含指令的结果 错误代码的定义请参见 276页表 9-13
表 9-9 POSx_SRATE指令的参数输入 输出 数据类型 操作数
RUN,JOG_P,JOG_N BOOL I,Q,V,M,SM,S,T,C,L,Power Flow
Speed DINT,REAL ID,QD,VD,MD,SMD,SD,LD,AC,*VD,
*AC,*LD,Constant
Dir,C_Dir BOOL I,Q,V,M,SM,S,T,C,L
Error BYTE IB,QB,VB,MB,SMB,SB,LB,AC,*VD,AC,
*LD
C_Pos,C_Speed DINT,REAL ID,QD,VD,MD,SMD,SD,LD,AC,*VD,
*AC,*LD
POSx_DIS 指令指令 POSx_DIS 可接通或断开位控模块的 DIS 输出 您可以使用 DIS 输出来使能或禁止电机控制器 如果您要使用位控模块上的 DIS 输出 那么 这条指令可以在每一循环周期中调用 或者只在您需要改变 DIS 输出时调用
EN 位接通时使能该指令 参数 DIS_ON 控制位控模块的 DIS 输出 关于 DIS
输出的更多的信息 请参见 244页的表 9-1或参考位控模块附录 A 中的规范参数 Error包含该指令的结果 错误代码的定义请参见 276页表 9-13
表 9-10,POSx_DIS 指令的参数输入 输出 数据类型 操作数
RUN,JOG_P,JOG_N BOOL I,Q,V,M,SM,S,T,C,L,Power Flow
Speed DINT,REAL ID,QD,VD,MD,SMD,SD,LD,AC,*VD,
*AC,*LD,Constant
Dir,C_Dir BOOL I,Q,V,M,SM,S,T,C,L
Error BYTE IB,QB,VB,MB,SMB,SB,LB,AC,*VD,AC,
*LD
C_Pos,C_Speed DINT,REAL ID,QD,VD,MD,SMD,SD,LD,AC,*VD,
*AC,*LD
创建模块程序 第九章
9-26
POSx_CLR 指令
POSx_CLR 指令 触发 CLR 输出 命令位控模块在 CLR 输出上生成一个 50ms 的脉冲接通 EN位使能该指令 确保 EN保持接通直至 Done位指示该指令完成接通参数 START 则向位控模块发送一条 CLR 命令 每一循环周期 当参数
START 接通并且模块不忙时 该指令向位控模块发送一条 CLR 命令 要确保该命令只发送一次 使用边沿检测以脉冲触发参数 START接通模块完成该指令时 参数 Done接通参数 Error包含该指令的结果 错误代码的定义请参见 276页表 9-13
表 9-11,POSx_CLR 指令的参数输入 输出 数据类型 操作数
RUN,JOG_P,JOG_N BOOL I,Q,V,M,SM,S,T,C,L,Power Flow
Speed DINT,REAL ID,QD,VD,MD,SMD,SD,LD,AC,*VD,
*AC,*LD,Constant
Dir,C_Dir BOOL I,Q,V,M,SM,S,T,C,L
Error BYTE IB,QB,VB,MB,SMB,SB,LB,AC,*VD,AC,
*LD
C_Pos,C_Speed DINT,REAL ID,QD,VD,MD,SMD,SD,LD,AC,*VD,
*AC,*LD
创建调制解调模块程序 第十章
10-1
创建调制解调模块程序 10
使用 EM241 调制解调模块可以将 S7-200 直接连到一个模拟电话线上 并且支持 S7200 与 STEP 7-Micro/WIN 的通讯 该调制解调模块还支持 Madbus 从站
RTU 协议 该模块与 S7-200 之间的通讯通过扩展 I/O 总线实现
STEP 7-Micro/WIN提供一个调制解调扩展向导 它可以帮助您设置一个远端的调制解调器 或者高置将 S7-200连向远端设备的调制解调模块本章内容
EM241 调制解调模块特性使用调制解调扩展向导组态 EM241 调制解调模块调制解调模块指令和限定概述
EM241 调制解调模块示例支持智能模块的 CPU
用于 EM241 调制解调模块的特殊存储区高级设题信息的电话号码格式文本信息格式
CPU 数据传送信息格式创建调制解调模块程序 第十章
10-2
EM241 调制解调模块特点使用调制解调模块可将 S7-200 直接连到模拟电话线上 并且还提供以下特性
¨ 提供国际电话线接口
¨ 提供与 STEP 7-Micro/WIN 的调制解调接口可进行编程和诊断
teleservice
¨ 支持 Modbus RTU协议
¨ 支持数字和文本的寻呼
¨ 支持 SMS 短信息
¨ 允许 CPU到 CPU或 CPU 到 Modbus 的数据传送
¨ 密码保护
¨ 提供安全回拔功能
¨ 调制解调模块的组态存储在 CPU中图 10-1 EM241 调制解调模块您可以使用 STEP 7-Micro/WIN 调制解调扩展向导来组态调制解调模块 EM241
调制解调模块的技术参数如附录 A 所示国际电话线接口调制解调模块是一个标准的 V.34 33.6 大波特 10 位调制解调器 它与大多数内置或外置 PC 调制解调器相兼容 该调制解调模块不能够与 11 位调制解调器通讯您可以通过调制解调模块前端的六位四 RJ11 接口 见图 10-2 将模块连到电话线上 在不同的国家可能需要的适配器将 RJ11 接口转换连接到标准电话线端上 更多的信息请参见您的适配器的说明书调制解调器和民话线接品需要外供直流 24V 可以使用 CPU 传感器电源外部电源 将调制解调模块的接地端连到系统的接地当调制解调模块上电时 模块自动按特定国家的操作组态电话接口 模块前面的两个旋钮开关用来选择国家代码 您必须在模块上电前选好所要的国家 所支持的国家 请参见表 10-1
创建调制解调模块程序 第十章
10-3
STEP 7-Micro/WIN 接口您可以使用调制解调模块通过电话线与 STEP 7-Micro/WIN通讯 teleservice
当您使用 STEP 7-Micro/WIN并将调制解调模块用作远端调制解调器时 无须在 S7-200 CPU中组态或编程在 STEP 7-Micro/WIN 中按照以下步骤使用调制解调模块
1,S7-200 断电 交地调制解调模块连至 I/O 扩展线上 不要在 S7-200 CPU
上电时连接任何 I/O 横块
2,将电话线连接到调制解模块上 如需要可使用适配器
3,给予调制解模块连接 24V 直流供电
4,将调制解模块上的地与系统的地相连接
5,放置国家代码开关
6,给 S7-200 CPU和调制解模块上电
7,组态 STEP 7-Micro/WIN与 10 位调制解器通讯
Modbus RTU 协议您可以将调制解模块组态作为 Modbus RTU 从站 调制解模块通过调制解调接口接收 Modbus 请求 解释这些请求并从或向 CPU 传送数据 然后 调制解模块生成一个 Modbus 响应并通过调制解调接口传送出去提示如果调制解模块组态为 Modbus RTU 从站 STEP 7-Micro/WIN 不能通过电话线调制解模块通讯调制解模块所支持的 Modbus 功能如表 10-2所示
Modbus 功能 4 和功能 16允许在一个请求中最多读或写 125个保持寄存器 250
字节的 V 区 功能 5 和功能 15 可写 CPU 的映象寄存器 这些值可被用户程序覆盖
Modbus 地址这书写件包括数据类型和偏移量在内的 5 和 6 个字符 前一个或
2 个字符决定数据类型 最整的 4 个字符在数据类型的范围内选择适当的值
Modbus 主设备会将这些地址标制到正确 Modbus 功能中创建调制解调模块程序 第十章
10-4
表 10-2 调制解调模块支持的 Modbus 功能功能 描述功能 01 读线圈 输出 状态功能 02 读输入状态功能 03 读保持寄存器功能 04 读输入 模机输入 寄存器功能 05 写单个线圈 输出功能 06 须设单个寄存器功能 15 写多个线圈 输出功能 16 须设多个寄存器表 10-3所示是调制解调模块所支持的 Modbus 地址以及 Modbus 到 S7-200 CPU
地址的标制关系使用调制解调扩展向导可为调制解调模块生成一个支持 Modbus RTU 协议的组态块 在使用 Modbus 协议之前 必须将调制解调模块组态块下载到 CPU 的数据块中表 10-3 标制 Modbus 地址至 S7-200 CPU
Modbus 地址 S7 -200 CPU 地址
000001 Q0.0
000002 Q0.1
000003 Q0.2
… …
000127 Q15.6
000128 Q15.7
010001 I0.0
010002 I0.1
010003 I0.2
… …
010127 I15.6
010128 I15.7
030001 AIW0
030002 AIW2
030003 AIW4
… …
030032 AIW62
040001 VW0
040002 VW2
040003 VW4
… …
04xxxx VW 2*(xxxx-1)
创建调制解调模块程序 第十章
10-5
寻呼和 SMS 短信息调制解调模块支持向移动电话发送数字和文本的寻呼信息以及 SMS 短信息服务 信息 在那些移动电话服务提供 商所支持的地方 这些信息和电话号码存储在调制解调模块组态块中 这个组态块必须下载到 S7-200 CPU 的数据块中 您可以使用调制解调向导为调制解调组态块生成信息和电话号码 调制解调扩展向导还生成程序代码以供您的程序在生送这些信息时调用数字寻呼数字寻呼使用 touch tone 电话的 tone 向寻呼机发送数字值 调制解调模块拔出年请求的寻呼服务 等待语音信息后完成 然后 发送与数字寻呼信息相对应的 在寻呼信息中可以使用 0 到 9 星号 * A B C 和 D 星号 A B
C 和 D 实际显示在寻呼机上的字符是非标准的 由寻呼机以及寻呼服务提供商决定文本寻呼文本寻呼可以将字母信息信送给寻呼提供商 然后再传到寻呼机上 文本寻呼堤供商通常使用一条与调制解调器相连的电话线来接收文本寻呼 调制解调模块使用本地电信文字数字协议 TAP 向服务提供商发送文本信息 许多文本寻呼提供商使用这个协议接收信息短信息服务 SMS
一般来说 一些移动电话服务支持那些与 GSM 相兼容的短 服务 SMS
信息 SMS 允许调制解调模块通过一条模机电话线向 SMS 提供商发送信息
SMS 提供商再将信息传送到移动电话上 信息则以文本的形式显示在电话上调制解调模块使用本地电信数字文字协议 TAP 和通用计算机协议 UCP
向 SMS 提供商发送信息 您只能向那些所用的调制解调支持这些协议和 SMS
提供商发送 SMS 信息文本和 SMS 信息中的嵌入变量调制解调模块能够在文本信息中嵌入来自 CPU 的数据并且基于在信息中的定义格式化该数据 你可以定议小数点左边和右边数字的位数以及小数点是逗号还是点号 当用户程序命令调解调模块发送一条一信息时 调制解调模块从 CPU
获取信息 判断该信息中需要什么样的 CPU 值 从 CPU 中获取这些数值 然后 将这些数值以一定的格式放置在文本信息的适当位置上 最后传送给信息的服务提供商创建调制解调模块程序 第十章
10-6
信息提供商的电话号码 信息以及信息中的嵌入数据是通过多个 CPU 循环周期从 CPU 中读取的 当一条信息正在发送时 您的用户程序不能修改电话号码或信息 信息中的嵌入数据值则可以在信息发送且程中连续地被刷新 如果信息中包含多个变量 那些变量是通过多个 CPU 循环周期读取的 如果您要信息中所有的嵌入数据保持一致 那么 在发送信息时 不要修改任何嵌入变量数据传送调制解调模块允许用户程序通过电话线向其它 CPU 或 Modbus 设备传送数据传送的数据和电话号码可通过调制解调扩展向导组态 存储在调制解调模块的组态块中 该组态块随后要下载到 S7-200 CPU 的数据块中 调制解调扩展向导还生成和序代码 在用户程序中调用这些程序进行数据传送数据传送可以是从远端设备中读数据 也可以是向远端设备写数据 数据传送可以读或写 1 至 100 个数据字 数据传送从或者向所连接的 CPU 中读取或写入数据您在调制解调扩展向导中创建的一个数据传送可以包括一个单 的从远端设备的读操作 一个单一的向远端设备的写操作 或者 与远端设备间的一个读又写的操作数据传送使用调制解调模块的组态协议 如果该模块被组态为支持 PPI协议 当它响应 STEP 7-Micro/WIN 时 模块使用 PPI 协议传送数据 如果该模块被组态为支持 Modbus RTU协议 数据传送则使用 Modbus 协议远端设备的电话号码 数据传送请求以及被传送擞 据是通过多个 CPU 循环周期从 CPU中读取的 当信息发送时 您的程序不能修改电话号码或信息 而且在信息传送过和中也不能够修必传送的数据如果远端设备也是一个调制解调模块 数据传送中可以使用密码功能 只需在电话号码的组态中输入远端调制解调模块的密码一个可 数据传送不能使用回拔功能密码保护密码安全是调制解调模块的可选功能 可在调制解调扩展向导中使能 调制解调模块使用的密码与 CPU密码不同 调制解调模块的密码是另外的一个 8 字符的密码 拔号者必须向调制解调模块提供该密码 否则不允许访问调制解调模块所连接的 CPU 密码作为调制解调模块组态块的一部分存在 CPU 的 V 区内调制解调模块的组态块必须下载到连接的 CPU 的数据块中如果 CPU 的密码安全在系统块中被使能了 拔号者必须提供 CPU 密码发授取对任何密码保护功能的访问权创建调制解调模块程序 第十章
10-7
安全回拔安全回拔是调制解调模块的可选功能 在调制解调扩展向导中组态 回拔功能只允许那些须先设定的电话号码访问 CPU 从而为 CPU 提供了额外的安全保护 回拔功能使能时 调制解调模块应答所有进入的拔号 验证拔号者 然后断开链接 如果是授权的拔号者 调制解调模块则回拔为该拔号者须先设定的电话号码 允许其访 CPU
调制解调模块支持三种回拔模式
¨ 只须先定义一个号码 对此号码回拔
¨ 须先设定多个号码 对这些号码皆可回拔
¨ 对任何号码者可回拔在调制解调扩展向导中选择适当的选项确定回拔模式 然后定义回拔的电话号码 回拔电话号码存储在调制解调模块的组态块中 该组态块存储在所连接的
CPU 的数据块中最简单的回拔形式是一个单个的预先定义的电话号码 如果在调制解调模块的组态块中存储了一个号码 每当调制解调模块应答进入的拔号时 它通知拔号者回拔功能已使能 断开拔号者 然后回拔在组态块中指定的号码调制解调模块还支持对多个预设电话号码的回拔功能 在该模式下 向拔号者查询电话号码 如果友号者提供的号码与模块组态块中预先设定的参码中的某一个相匹配 解调模块则断开拔号者 然后使用与组态块中的号码相匹配的号码进行回拔 用户最多组态 250 个回拔号码当存在多个预先设定的回拔号码时 向所连接的调制解调模块提供的回拔号码除了前两个数字外 要与模块的组态块中的码完全匹配 例如 如果组态的回拔号码是 91 123 4569999 由于可能需要友外线 9 和长途 1 所提供的回拔号码可以是以下号码中的任何一个
¨ 91 123 4569999
¨ 1 123 4569999
¨ 123 4569999
以上所有号码者可以认作是一个匹配的回拔号码 在进行回拔时 调制解调模块使用其组态块中的回拔电话号码 在本例中是 91 123 4569999 在组态多个回拔号码时 确保所有电话号码除前两位数字以外 是唯一的 进行回拔号码比较时 在一个电话号码中只使用数字字符 象逗号或括号这样的字符在回拔号码比较中忽略不计创建调制解调模块程序 第十章
10-8
调制解调扩展向导中 在回拔组态中选择 Enable callbacks to any phone
number”这一选项即可放置成对任意电话码进行回拔 如果选择这一选项 调制解调模块应答到来的拔号并请求一个回拔号码 在拔号者提供电话号码后模块断开链接并拔打该电话号码 这种回拔模式只提供一种向调制解调模块一方的连接收取电话费用的方式 并不为 S7-200 CPU 提供任何安全保护 若使用这种回拔模式 应使用调制解调模块的密码功能提供安全保护调制解调模块的密码和回拔功能可同时使能 模块在处理回拔功能之前 要求拔号者提供正确的密码
EM241组态表所有的文本信息 电话号码 数据传输信息 回拔号码以及其它选项都存储在调制解调模的组态表中 该组态表必须下载到 CPU的 V 区 调制解调扩展向导引导您完成整个调制解调模块组态表的生成 STEP 7-Micro/WIN则将组态表存储到数据块中 该 数据块要下载到 S7-200 CPU中调制解调模块在 CPU 运动时以及 CPU的任何一次从 STOP到 RUN 转换的 5 秒钟内读取该组态表 只要调制解调模块与 STEP 7-Micro/WIN 连接 模块就不会从 CPU 读取新的组态表 如果调制解调模块在线时有新的组态表下载 该模块会在任务结束时读取新的组态表如果调制解调模块检测到组态表中的错误 模块前部指示模块好的 LED MG
会闪炼 查看 STEP 7-Micro/WIN 中的 PLC Information PLC 信息 或取读
SMW220 由 0 号槽的模块占用 中关于组态错误信息的数值 调制解调模块的组态错误如表 10-4 所列 如果您使用调制解调扩展向导来创建调制解调模块的组态表 STEP 7-Micro/WIN在生成组态表前会进行数据检查表 10-4 EM241 组态错误 十六进制错误 描述
0000 没有错误
0001 无 24V直流外供电源
0002 模块故障
0003 无组态块 ID 位于组态表起始处的 EM241 标识对于该模块无效
0004 组态块超范围 组态表指针未指向 V 区 或者表的一部分超出了所连的 CPU 的 V 区范围
0005 组态错误 回拔功能使能并且回拔的电话号码数等于 0 或大于 255 信息数大于 250 信息发送的电话号码数大于 250
或者信息发送的电话号码的长大于 120 字节
0006 国家代码选择错误 不支持国家选择旋钮开关上设定的数值
0007 电话号码太大 回拔功能使能并且回拔号码长度大于上限创建调制解调模块程序 第十章
10-9
错误 描述
0008-00FF 保留
01xx 回拔号码 xx 有错 在回拔电话号码 xx 中有非法字符 xx 值为 1 意味着第一个回拔号码 xx 值为 2 是指第二个回拔号码以此类推
02xx 电话号码 xx 有错 在信息电话号码 xx 或数据传送的电话号码 xx 的某个区域中包含一个非法值 数值 xx 为 1 表示是第一个电话号码 2 则指第二个号码等等
03xx 信息 xx 有错 信息或数据传输的数量 xx 超过允许的最大长度 数值 xx 为 1 代表一条信息 2 指第二条信息等等
0400-FFFF 保留
EM241状态 LED
位控模块的前面板有 8 个指示状态的 LED 表 10-5 描述了这些状态 LED
表 10-5 EM241 状态 LED
LED 描述
MF 模块故障 当模块检验描述到以下故障条件时 该 LED 灯亮
n 无 24V直流外供电源
n I/O 看门狗超时
n 模块故障
n 与本地 CPU 通讯出错
MG 模块正常 当设有模块故障条件时该 LED 灯亮 如果组态表中有错或者用户为电话线接口设置了非法的国家代码设置模块正常的 LED 会闪炼 可查看 STEP 7-Micro/WIN 的 PLC
Information (PLC 信息 )画面 或者读取 SMW220 用于位于
0 号槽的模块 的数值的获得组态错误的信息
OH Off Hook 当 EM241 正在使用电话线时该 LED 亮
NT 无拔号音 当 EM241 接到发送信息的命令而电话线上无拔号音时 该 LED 灯亮指示有错误条件 只有当 EM241 被组态为拔号前检查拔号音的时候才会出现这个错误条件 当一次拔号尝试失败后该 LED 接并保持大 5 秒左右
RI 振铃指示 该 LED 指示 EM241 正在接收一个拔入电话
CD Carrier 检测 该 LED 指示与远程调制解调器的连接已建立
RX 接收数据 当调制解调器接收数据时该 LED 闪炼
TX 传送数据 当调制解调器进行数据传送时 该 LED 闪炼利用调制解调扩展向导组态 EM241 调制解调模块在 STEP 7-Micro/WIN 工具菜单或浏览条的工具组件中启动调制解调扩展向导要使用该向导 必须对项目进行编译并设为符号寻址模式 如果您还未编译您的程序 请现在编译创建调制解调模块程序 第十章
10-10
1,在 Modem 扩展向导的第一个画面中 选择组态 EM241 Modem 模块并点击 Next>
2,调制解调扩展向导要求调制解调模块相对于 S7-200 CPU 的位置信息以便生成正确的程序代码 点击读模块按钮可自动读取与 CPU 相连的智能模块的位置 扩展模块的号码从零开始顺序排列 双击你要组态的 Modem
模块 或在模块位置域中设置 Modem 模块的位置 点击 Next>
提示在硬件版本号 1.2 之前的 S7-200 CPU 中 智能模块必须位于紧靠 CPU 的位置 否则 Modem 扩展向导无法组态该模块
3,在密码保护画面中可以使能 Modems 模块的密码保护功能并为该模块设置一个 1 至 8 个字符的密码 该密码独立于 S7-200 CPU 的密码 当该模块设为密码保护后 任何人试图通过该 Modem 模块来连接 S7-200 CPU
时都必须输入一个正确的密码 如果需要选择密码功能 并输入一个密码点击 Next>
4,Modem 模块支持两种通讯协议 PPI 协议 与 STEP 7-Micro/WIN 通讯和 Modbus RTU 协议 选择什么样的通讯协议取决于远端的通讯对象 该设置控制 Modem 模块在应答拔入 以及进行 CPU 数据传送时所使用的通讯协议 选择适当的协议并点击 Next>
5,你可以组态该模块向呼机发送数字和文本信息 或向手机发送短信息
SMS 点击信息使能复选框并点击组态信息 …按钮 定义信息及接收方的电话号码
6,当设置向手机或呼机发送信息时 你必须定义信息和电话号码 选择组态信息画面的信息标签并点击新信息按钮 输入信息的文字内容并指定插入到信息中的 CPU 数据 要在信息中插入 CPU 数据 将光标放在数据的位置上然后点击插入数据 …按钮 指定 CPU 数据的地址 如 VW100
显示格式 如 有符号整数 以有小数点左右的位数 你还可以指定小数点是点号还是逗号
- 数据寻呼仅限于数字 0-9 字母 A B C D 以及星号 * 数字寻呼信息的最大长度取决于服务提供商
- 文本信息最长可有 119 个字符并且可以是所有的 alphanumeric 字符
- 文本信息可包含任意数目的嵌入变量
- 嵌入变量可以是所连 CPU 中的 V M SM I Q S T C 成 AI 存储区
- 十六进制数的显示以 16 开头 数值中的位数取决于变量的大小 例如
VW100 显示为 16 0123
创建调制解调模块程序 第十章
10-11
- 小数点左边的位数必须足够大以显示所期望的数值范围 如果是有符号整数或浮点数 还应包括正负号
- 如果数据格式是整数而且小数点右边的位数为零 该整数则显示为标定的整数例如 如果 VW100 1234 如果小数点右边有两位 该数据则显示为 12.34
- 如果数值太大无法在指定的域中显示 Modem 模块则以 替代所有的字符位置显示该数据
7,在组态信息画面选择电话号码标签可组态电话码 点击新电话号码 … 按钮 并添加一个新的电话号码 一旦组态了一个电话号码 则必须将它添加到项目中 选中已有的电话号码栏中的电话号码并点击向右的箭头即可将这些电话号码添加到当前的项目中 一旦你将些电话号码添加到当前的项目中 就可以选择这些电话号码并为这些号码添加符号名以用于您的程序基于用户所选择的信息的类型 电话号码可包括几个不同的域
- 信息协议的选择告诉 Modem 模块使用何种协议向信息服务提供商发送信息数字呼机只支持数字协议 文字寻呼通常要求 TAP Telelocator Alphanumeric
Protocol SMS 信息提供商支持 TAP 或 UCP 通用计算机协议 通常有三种 UCP 服务用于 SMS 信息 多数提供商支持命令 1 或 51 向 SMS 提供商进行查询以确定他们所要求的协议和命令
- 在描述域中 你可以为电话号码添加文字描述
- 在电话号码域中输入信息服务提供商的电话号码 对于文本信息 这个电话号码是服务提供商用于接收文本信息的 Modem 线的号码 对于数字寻呼 这个电话号码是呼机本身的号码 Modem 模块允许电话号码域中最多 40 个字符以下字符可用于电话号码 由 Modem 模块拔出
0-9 电话按键
A,B,C,D,*,# DTMF 数字 语音拔号
,停止拔号 2 秒钟
! 命令 Modem 产生一个挂机闪炼 flash
@ 等待 5 秒静间
W 等待拔号音
( ) 忽略 可用于格式化电话号码
- 特定的呼机 ID 域或手机号码域 这里你要输入接收信息的呼机号码或手机号码这个号码除了数字 0 到 9 不应包含任何字符 最多可输入 20 个数字
- 密码域是 TAP 信息的可选项 有些提供商要求一个密码 但通常可以空着
Modem 模块允许该密码最多可有 15 个字符创建调制解调模块程序 第十章
10-12
- Originating 电话号码域使 Modem模块在 SMS 信息中能够被识别 使用 UCP 命令的服务提供商要求这样一个域输入 有些服务提供商对这个域可能还有最少字符数的要求 Modem 模块最多允许 15 个字符
- Modem 标准域的提供是用于 Modem 模块与服务提供商的 modem 之间无法进行 modems 标准沟通的情形 缺省该置是 V.34 33.6k波特
- 数据格式域可用于向服务提供商传送信息时进行数据位和校验的调态 TAP 通常使用 7 位数据位和偶校验 但是有些服务提供商使 8 位数据位和无校验 UCP 总是
8 位数据位 无校验 查询服务提供商以决定使用何种设置
8,你可以组态 Modem 模块向另一个 S7-200 CPU 如果选择了 PPI 协议或一个 Modbusymc 备 如果选择了 Modem 协议 传送数据 选中使能
CPU 数据传送的多选框并点击组态 CPU 至 …按钮 定义要传送的数据以及远端设备的电话号码
9,当设置 CPU 至 CPU 或 CPU 至 Modbus 的数据传送时 你必须定义要传送的数据以及远端设备的电话号码 在组态数据传送画面中选择数据传送标签并点击新传送按钮 数据传送包括从远端设备读数据 向远端设备写数据 或者与远端设备之间的即读又写的操作 如果选择了即读又写 先执行读后执行写在每一个读或写作中最多可写 100 个字 数据传送必须是对 CPU 的 V 存储区 向导在对远端设备的存储区进行描述时总是将远端设备当作 S7-200
CPU 如果远端设备是一个 Modbus 设备 传送到 Modbus 设备 地址
04xxxx 的保持寄存器 按如下如果确定相应的 Modbus 地址 xxxx
Modbus 地址 = 1 + (V 区地址 / 2)
V 区地址 = (Modbus 地址 – 1) * 2
10 在组态 CPU数据传送画面的电话号码标签中 你可以定义用于 CPU 或 CPU
到 Modlas 数据传送的电话号码 点击 新电话号码 按钮增加新的电话号码 完成对一个电话号码的组态后必须将它加入到项目中 在可选的电话号码栏中选中相应的电话号码 然后点击向右的箭头将该号码加入到当前的项目中 一旦你将该号码加入到项目中 就可以为它增加在程序中使用的符号名对描述域和电话号码域的描述与前面信息功能相同 如果远程设备是一个
Moden 模块并且使能了密码保护功能则要求填写密码域 本地 Moden 模块的该密码域中必须填写远程 Moden 模块的密码 本地 Moden 模块在远程 Moden 模块有要求时 提供这个密码创建调制解调模块程序 第十章
10-13
11 回拔功能使得 Moden模块在收到一个来自远程 STEP7-Micro/WIN 的拔号后自动断开连接并拔出一个预交的电话号码 选择 使能回拔 复选框然后点击 组态回拔 按钮组态回拔的电话号码 点击 Next>
12 在 组态回拔 画面中 你可以电话号码 Moden 模块在应答拔入时会使用这些号码 如果回拔号码是预先确定的 可选择 使能回拔到指定的电话号码 如果 Moden 模块接受拔号者提供的任何回拔号码 为反向计费 选择 使能对任意电话号码的回拔如果只对特定的电话号码回拔 点击 新电话号码 按钮添加回拔电话号码 回拔属性画面中可以输入预先定义的回拔号码以及相应的描述 这里输入的电话号码是 Moden 模块在执行回拔时使用的号码 这个电话号码应包括所需要的所有数字 如连接到一个外线 等待外线时停 接通长途等在输入一个新的回拔号码后 必须将它加入到项目中 选中可选回拔电话号码 点击向右的箭头将这个号码加入到当前项目
13 你可以为 Moden 模块的信息传送或数据传送功能设置试拔次数 当所有拔号或信息发送的尝试都失败以后 Moden模块会向用户程序报告错误有些电话线在话筒摘机时没有拔号音 通常 当 Moden 模块命令发信息执行回拔时 若没有拔号音 模块会向用户程序返回一个错误 要想在无拔号音的线路上拔出 可选择 使能无拔号音拔号 的选项
14 Moden 扩展向导为 Moden 模块创建组块块并要求用户输入一个起始存储区地址用来存储 Moden 模块的组态数据 Moden模块的组态埠存储在 CPU
的 V 存储区 STEP7- Micro/WIN 将该组态块写入项目的数据块中 组态块的大小则基于所组态的信息和电话号码你可以选择你所希望的组态块存储的 V 区地址 或者点击 建议地址 按钮 让向导建议一个大小合适的未使用的 V 区 点击 Next>
15 组态 Moden 模块的最后一步是为 Moden 模块指定命令字节的 Q 区地址你可以计算 S7-200 上 Moden 模块的前的所有模块占用的实际的输出字节 从而决定该 Q 存储区地址 点击 Next>
16 现在 Moden 扩展向导为所所造的组态生成项目组件 程序块和数据块你可以在程序中使用这些程序代码 最后的向导屏幕显示你所要求的组态项目组件 你必须将这个 Moden 模块组态块 数据块 以及程序块下载到 S7-200 CPU
创建调制解调模块程序 第十章
10-14
Moden 指令和限定概述
Moden 扩展向导可以基于模块位置和你所作的组态选项生成唯一的指令子程序 从而使 Moden 模块的控制变得非常简单 每条指令都有一个前辍
MODx_ 这时里 x 是模块位置使用 EM241 Moden 模块指令的要求在使用 Moden模块指令时请考虑以下要求
Moden 模块指令使用三个子程序
Moden 模块指令会增加你的程序对存储室间的需求 最多可达 370 字节 如果你删掉了一个无用的指及子程序 你可以在需要时新运行 Moden 扩展向导再次生成这个指令必须确保在同一时间只有一条指令是激活的这些指令不能用在中断程序中
Moden 模块在它第一次上电以及从 STOP 到 RUN时读取组态表信息 除非有模式转换或再次上电 否则模块无法查觉程序中对组态表所作的任何改变使用 EM241 Moden 模块指令在您的 S7-200程序中使用 Moden 模块指令请遵循以下步骤
1 使用 Moden 扩展向导生成 Moden 模块组态表
2 在程序中插入 MODx_CTRL指令并以 SM0.0为条件使之每一循环都执行
3 为每一个需要发送的信息插入一个 MODx_MSG指令
4 为每一个数据传送插入一个 MODx_XFR 指令创建调制解调模块程序 第十章
10-15
EM 241 Moden 模块指令
MODx_CTRL指令
MODx_CTRL 控制 指令用于使能和初始化
Moden 模块 该指令要在每个循环周期内调用而且在项目中只能使用一次
MODx_XFR 指令
MODx_CTRL 数据传送 指令用于命令 Moden
模块读写另一个 S7-200 CPU 或 Modbus 设备的数据 该指令从 START 输入端触发到 Done 位置需要 20到 30 秒
EN 位必须接通向模板发出命令 并且要保持接通直至 Done 位置位 即标志整个过程完成 当
START 输入接通且模块不忙时 每一循环向模块发送一个 XFR 命令 START 输入可以用边沿检测指令 脉冲触发 这样命令只发送一次
Phone 是数据传送电话号码中的一个 你可以使用你在 Moden 扩展向导中为这些数据传送电话号码定义的符号名
Data 是一个定义了的数据传送的号码 你可以使用在 Moden 扩展向导中为这上数据传送请求定义的符号名
Done是一个位 当 Moden 模块完成数据传送时接通
Error 是一个字节 包含数据传送的结果 表 10-4 定义了这条指令执行时可能引起的错误条件创建调制解调模块程序 第十章
10-16
表 10-6 MODx_XFR 指令的参为输入 /输出 数据类型 操作数
START BOOL I,Q,M,S,SM,T,C,V,L,POWE Flow
Phone,Data BYTE VB,IB,QB,MB,SB,SMB,LB,AC,Constant,*VD,*AC,
*LD
Done BOOL I,Q,M,S,SM,T,C,V,L
Error BYTE VB,IB,QB,MB,SB,SMB,LB,AC,*VD,*AC,*lD
MODx_MSG 指令
MODx_MSG 发送信息 指令用于从 Moden 模块发送寻呼或 SMS 短信息该指令从 START 输入触发到 Done 位置位需要 20 至 30秒
EN 位必须接通使命令发至模块 并且保持接通至 Done 位置位 标志整个过程完成 当 START 输入接通且模块不忙时 每一循环向模块发送一个 MSQ 命令
START输入可以边沿栏测脉冲触发 这样命令只发送一次
Phone 是信息电话号码中的一个 你可以使用在 Moden 扩展向导中定义号码时您为每个信息电话号码分配的符号名
Msg 是一个已定义的信息的号码 你可以使用在 Moden 扩展向导中为每个信息分配的符号名
Done是一个位 当 Moden 模块完成向服务提供商的信息发送后该位置 1
Error 是一个字节 包含这个请求执行的结果 表 10-8 定义了这条指令的执行可能引起的错误条件表 10-7 MODx_MSG 指令的参数输入 /输出 数据类型 操作数
START BOOL I,Q,M,S,SM,T,C,V,L,POWE Flow
Phone,Data BYTE VB,IB,QB,MB,SB,SMB,LB,AC,Constant,*VD,*AC,
*LD
Done BOOL I,Q,M,S,SM,T,C,V,L
Error BYTE VB,IB,QB,MB,SB,SMB,LB,AC,*VD,*AC,*lD
创建调制解调模块程序 第十章
10-17
表 10 - 8 MODx_MSG指令和 MODx_XFR 指令的错误返回值错误 描述
0 无错误电话线路错误
1 无拔号音
2 线路忙
3 拔号错误
4 无应答
5 连接超时 1 分钟内未有连接
6 连接放弃或一个未知响应命令错误
7 数字寻呼信息包含非法数字
8 电话号码 号码输入 超范围
9 信息或数据传送 Msg 或数据输入 超范围
10 文本信息或数据传送信息错误
11 信息或数据传送电话号码错误
12 不允许的操作 如 拔号尝试设为 0
服务提供商错误
13 信息服务无响应 超时
14 信息服务由于未知原因断开
15 用户放弃信息 禁止命令位
TAP 服务提供商返回的文本寻呼错误和 SMS 信息错误
16 接收到远程断开 服务提供商放弃
17 登录未被信息服务接收 不正确的密码
18 块未被信息服务接受 核校验或传送错误
19 块未被信息服务接受 未知原因
UCP SMS 服务提供商返回的 SMS信息错误
20 未知错误
21 核检验错误
22 同步错误
23 系统不支持的操作 非法命令
24 该操作此时不允许
25 拔号排除知 黑名单
26 拔号者地址无效
27 验证失败
28
29 GA 无效
30 重复不允许
31
32 优先拔号不允许
33
34 紧急信息不允许
35
36 反向收费不允许
37
创建调制解调模块程序 第十章
10-18
表 10 - 8 MODx_MSG指令和 MODx_XFR 指令的错误返回值 续错误 描述
UCP 服务提供商返回的 SMS 信息错误 续
38 延期发送不允许
39 新 AC 无效
40
41 标准文本无效
42 时间段无效
43 系统不支持的信息类型
44 信息太长
45 请求的标准文本无效
49 信息类型对呼机类型无效
47 SMSC 中未发现信息
48 保留
49 保留
50 子机挂机
51 不支持传真组
52 不支持传真信息类型数据传送错误
53 信息超时 远端设备无响应
54 远端 CPU 正忙于上载或下载
55 访问错误 存储器超范围 非法数据类型
56 通讯错误 未知响应
57 响应的校验错误或 CRC 错误
58 远端 EM241 设为回拔方式 不允许
59 远端 EM241 拒绝所提供的密码
60to127 保留指令使用错误
128 请求无法处理 模块可能正在处理另一个请求或该请求无起
129 EM241 模块错误 模块故障 有关故障原因的信息符号见
EM24Modem 模块的特殊存储器 SMW220
创建调制解调模块程序 第十章
10-19
EM241 Modem 模块示例支持智能模块的 CPU
Modem 模块是一个智能扩展模块 它可与表 10 9 所示的 S7 200CPU 一起工作表 10 - 9 CM241Modem 模块与 S7 200CPU 的兼容性
CPU 描述
CPU222 DC DC DCCPU222 Rel.1.10 或更高
CPU222 AC/DC/Relay
CPU224 DC/DC/DCCPU224 Rel.1.10 或更高
CPU224 AC/DC/Relay
CPU226 DC/DC/DCCPU226Rel.1.00 或更高
CPU226 AC/DC/Relay
CPU226XM DC/DC/DCCPU226XM Rel.1.00 或更高
CPU226XM AC/DC/Relay
示例 Modem模块在每个循环中调用 MODO_CTRL 子程序向手机发送文本信息传送数据到远程 CPU
创建调制解调模块程序 第十章
10-20
EM241 Modem 模块的特殊存储区智能模块按其在 I O 扩展总线上的物理位置分配有 50 个字节的特殊存储区
SM 如果出错或检测到状态变化 模块会刷新与该模块位置相对应的 SM
区域 如果是第一个模块在需要报告状态和错误信息的时候它刷新 SMB200 到
SMB249 第二个模块则刷新 SMB250 至 SMB299等等 见表 10 10
表 10 - 10 特殊存储字节 SMB200 至 SMB549
特殊存储字节 SMB200 至 SMB549
智能模块
0 号槽智能模块
1 号槽智能模块
2 号槽智能模块
3 号槽智能模块
4 号槽智能模块
5 号槽智能模块
6 号槽
SMB200 至
SMB249
SMB250 至
SMB299
SMB300 至
SMB349
SMB250 至
SMB399
SMB400 至
SMB449
SMB450 至
SMB499
SMB500 至
SMB549
表 10 - 11 所示为 Modem 模块的特殊存储区数据区域的分配 该区域是按照智能模块位于 I O 系统的 0 号槽定义的创建调制解调模块程序 第十章
10-21
表 10 - 11 EM241 Modem 模块的 SM区域地址 描述
SMB200 至
SMB215
模块名 16 个 ASCII 字符 SMB200 是第一个字符
SMB216 至
SMB219
S W 修订号码 4 个 ASCII 字符 SMB216 是第一个字符
SMB220 至
SMB221
错误代码 SMB220 是错误代码的最字字节无错无用户电源
Modem 故障无组态块 ID
组态块超范围组态错误国家代码选择错误电话号码太大信息太大保留回拔号码 XX 出错呼机号码 XX 出错信息号码 X
保留
SMB222
模块状态 反映 LED 状态
F – EM_FAULT 0 – 无错误 1 – 出错
G – EM_GOODQ 0 – 不好 1 – 好
H – OFF_HOOK 0 – 挂机 1 – 摘机
T – NO DIALTONE 0 – 话音拔号 1 – 无拔号音
R – RING 0 – 无振铃 1 – 电话振铃
C – CONNECT 0 – 卡连福 1 – 连通
SMB223 由开关设置的国家代码 十进制值
SMB224 至
SMB225
建立连接所使用的波特率 无符号十进制值
SMB224 是等位字节 SMB225 是低位字节创建调制解调模块程序 第十章
10-22
表 10 - 11 EM241 Modem 模块的 SM区域 续地址 描述
SMB226 用户命令的结果
D – Done 位
0 – 操作进行中
1 – 操作完成
ERROR 错误代码描述 见表 10 8
SMB227 电话号码选择 该字节指定发送信息时使用的信息电话号码
SMB228 信息选择 该字节指珲发送哪条信息 有效值为 1 至 250
SMB229 至
SMB243
保留
SMB244 保留 欲留作与该模块第一个 1 字节的偏移量
SMB245 与第一个 Q 字节之间的偏移量 用作该模块的命令接口 该偏移量由CPU 提供 是为方便用户而非模块所需
SMB246

SMB249
在 V 存食区中指向 EM241Modem模块组态表的指针 SMB246 是最高字节 SMB249 是最低字节 指向 V 区以外其它区域的指针是不能被接受的 模块会持续地检查该区域 等待有效的指针值创建调制解调模块程序 第十章
10-23
高级议题理解组态表
Modem 扩展向导能够基于您关于您的系统的回答自动生成组态表 轻松地完成 Modem 的应用 组态表信息提供给那些想要生成自己的 Modem 模块控制程序 格式化自己的信息的高级用户组态表位于 S7 200 的 V 存储区 表 10 12 的字节偏移量这一栏 是与 SM
中的组态区域指针所指向的位置的偏移量 组态表信息分为四个部分组态块包含组态该模块的信息回拔电话号码块包含预先定的电话号码可用于回拔安全功能信息电话号码块包含用于拔号信息服务或 CPU 数据传送的电话号码信息块包含预定的信息服务中要发送的信息创建调制解调模块程序 第十章
10-24
表 10 - 12 EM241 组态表组态块字节偏移量 描述
0to4 模块标识 5 个 ASCII 字符用于联系组态表和智能模块版本 1.00 的 EM241Modem模块的标识是 M241A
5 组态块的长度 当前为 24
6 回拔电话号码长度 有效值为 0 40
7 信息电话号码长度 有效值为 0 120
8 回拔电话号码的号码 有效值为 0 250
9 信息电话号码的号码 有效值为 0 250
10 信息号码 有效值为 0 250
11to12 保留 2 字节
13 该字节包含所支持的特性的使能位
PD - 0=语音拔号 1 = 脉冲拔号
CB - 0=回拔禁止 1 = 回拔使能
PW - 0=密码禁止 1 = 密码使能
MB - 0=PPI 协议使能 1 = Modbus 协议使能
BD - 0=盲拔禁止 1 = 盲拔使能模块忽略位 2 1 0
14 保留
15 尝试次数 该值指是 Modem 模块在返回错误之前尝试与并发送信息的次数 数值 0 则禁止 Modem 拔号
16to23 密码 8 个 ASCII 字符创建调制解调模块程序 第十章
10-25
表 10 - 12 EM241 组态表 续回拔电话号码块 可选字节偏移量 描述
24 回拔电话号码 1 一个字符串 代表第一个授权以 EM241Modem模块回拔访问的电话号码 按照回拔电话号码长度域中指定的长度每个回拔号码分配有相同的空间 组态块中偏移量为 6
24 回拔号码 回拔电话号码 2
..,.
.,回拔电话号码 n
信息电话号码块 可选字节偏移量 描述
M 信息电话号码 1 一个字符串 代表信息电话号码 包括协议和拔号选项 按照信息电话号码长度域中指定的长度 每个电话号码配有相同的空间 组态块中的偏移量是 7
M+
信息号码长度信息电话号码 2
..,.
.,信息电话号码 n
信息块 可选字节偏移量 描述
N 第一个信息的 V 区偏移量 相对于 VB0 2 字节
N+2 信息 1 的长度
N+3 信息 2 的长度
..
.,信息 n 的长度
P 信息 1 一个字符串 最大 120字节 代表第一个信息 该字符串包括文本和嵌入数据的规范 或者 它指定一个 CPU 的数据传送请参见下面有关文本信息格式和 CPU 数据传送格式的描述
P+信息 1 的长度 回拔电话号码 2
..,.
.,信息 n
Modem 模块在以下事件出现时会重新读取组态表
S7-200CPU从 STOP 转为 RUN的 5 秒钟之内 除非 modem 在线每 5 秒钟一次除非找到一个有效的组态 除非 modem 在线每次 modem 从在线转为离线创建调制解调模块程序 第十章
10-26
信息电话号码格式信息电话号码的结构中包含 Modem 模块发送信息所需要的信息 信息电话号码是一个字符串 第一个字节是长度 其后是 ASCII字符 信息电话号码的最大长度是 120 字节 包括长度字节信息电话号码包含由斜扛 隔开的 6 个区域 Back-to-Back 斜扛指示空区域 在 Modem 模块中空区域改为缺省值格式 电话号码 标识 密码 协议 标准 格式电话号码域是 Modem 模块发送信息时拔打的电话号码 如果要发送的信息是一个文本或 SMS 短信息 这个号码是服务提供商的电话号码 如果信息是数字寻呼 该区域是寻呼机的电话号码 如果信息是一个 CPU 的数据传送 该号码是远端设备的电话号码 该区域的最大字符数是 40
标识 是寻呼机号或手机号这个区域只能是数字 0 至 9 如果协议是 CPU数据传送 该区域用来提供远端设备的地址 该区域最多可有 20个字符密码区域 通过 TAP 发送信息时 如果服务提供商要求密码 则该区域提供密码 对于通过 UCP 发送信息 该区域用作原始地址或电话号码 如果信息向另一个 Modem 模块的 CPU数据传送 该区域可用作提供远端 Modem 模块的密码 该密码最大长度为 15 个字符协议域 台 另一个 ASCII 字符 指示 Modem 模块该如何格式化和传送信息它可以是以下各值
1 数字寻呼协议 缺省
2 TAP
3 UCP 命令 1
4 UCP 命令 30
5 UCP 命令 51
6 UCP 数据传送标准域 强制 Modem 模块使用一个特定的 Modem 标准 该标准域是一个 ASCII
字符 可以是以下各值
1 Bell103
2 Bell212
3 V.21
4 V.22
5 V.22bit
创建调制解调模块程序 第十章
10-27
6 V.23c
7 V.32
8 V.32bit
9 V.34 缺省格式域 是三个 ASCII 字符 指定信息传送时使用的数据位和校验 如果协议设为数字寻呼 该区域无效 该区域只允许以下两种设置
8N1 8 位数据位 无校验 一位停止位 缺省
7E1 7 位数据位 偶校验 一位停止位文本信息格式文本信息格式定义了文本寻呼或 SMS 短信息的格式 这些信息格式包含文本和嵌入变量 文本信息是一个字符串 以长度字节开始 其后为 ASCII 字符文本信息最长 120 字节 包括长度字节格式 文本 变量 文本 变量文本域包含 ASCII字符变量域定义了一个 Modem 模块从本地 CPU 中读取的嵌入数据 其格式以及它在信息中的位置 百分号 用来标识变量域的开始和结束 地址和左边区域用冒号隔开 左 右区域之间的小数点可以是逗号也可以是点号 变量域格式如下地址 左,右格式地址域指定该嵌入数据的地址 数据类型和长度 如 VD100 VW50 MB20
或 T10 可以是以下数据类型 I Q M S SM V T C 和 AI 长度可以是字节 字和双字左区域指定小数点左边所显示的位数 该数值应足够大以显示包括负号在内的完整的嵌入数据 如果左区域为零 则该值前面显示零 左区域的有效值为 0
到 10
右区域定义小数点右边显示的位数 小数点右边的零总能够被显示 如果右区域的值为零 则该数值的显示不带小数点 右区域的有效值为 0 至 10
格式域指定嵌入数据的显示格式 可以是以下字符
i 有符号整数
u 无符号整数
h 十六进制数创建调制解调模块程序 第十章
10-28
f 浮点数 实数示例 Temperature=%VW100:3.1I% Pressure=%VD200:4.3f%
CPU 数据传送信息格式无论是 CPU到 CPU 或是 CPU到 Modbus 的数据传送 其数据传送的格式都是由 CPU 数据传送信息格式来定义 CPU数据传送信息是一个 ASCII 字符串可以定义两台设备之间的任务数量的数据传送 其定义的最大数量不能超过信息长度的上限 120 字节 119 字节的字符加上一个长度字节 ASCII 码的空格可用来分隔不同的数据传送 但不是必须的 所有的数据传送都在一个链接中执行 数据传送按照在信息中定义的顺序进行 如果在数据传送中检测到错误与远端设备的连接断开而且随后的传送不再处理如果是读操作 从远端设备的 远端地址 开始读 数量 所指定的字数 然后把这些数据写到本地 CPU 从 本地 地址 开始的 V 区中如果是写操作 从本地 CPU 的 本地 地址 开始读取 数量 所指定的字数然后将这些数据写到远端设备从 远端 地址 开始的区域格式 操作 数量 本地 地址 远端 地址操作域中是一个 ASCII 字符 指定传送类型
R 从远端设备读数据
W 向远端设备写数据数量域指定要传送的字数 该区域的有效值为 1 到 100字本地 地址指珲本地 CPU中数据传送的 V 区地址 如 VW100
远端 地址指定远端设备中的数据传送地址 如 VW500
即使是与 Modbus 设备传送数据 这个地址总是指定为 V 区 如果远端设备是一个 Modbus 设备 则 V 区地址与 Modbus 地址之间的对应关系如下
Modbus 地址 1 V 区地址 2
V 区地址 Modbus 地址 1 2
示例 R 20 VW100 VW200 W 50 VW500 VW1000 R 100 VW1000
VW2000