西门子S7-1200plc05指令系统.ppt

上传人:tian****1990 文档编号:8024390 上传时间:2020-03-26 格式:PPT 页数:154 大小:2.62MB
返回 下载 相关 举报
西门子S7-1200plc05指令系统.ppt_第1页
第1页 / 共154页
西门子S7-1200plc05指令系统.ppt_第2页
第2页 / 共154页
西门子S7-1200plc05指令系统.ppt_第3页
第3页 / 共154页
点击查看更多>>
资源描述
指令系统 S7 1200的指令从功能上大致可分为三类 基本指令 扩展指令和全局库指令 5 1基本指令 基本指令包括位逻辑指令 定时器 计数器 比较指令 数学指令 移动指令 转换指令 程序控制指令 逻辑运算指令以及移位和循环移位指令等 基本逻辑指令 内部输入触点 I 的闭合与断开仅与输入映像寄存器相应位的状态有关 与外部输入按钮 接触器 继电器的常开 常闭接法无关 输入映像寄存器相应位为1 则内部常开触点闭合 常闭触点断开 输入映像寄存器相应位为0 则内部常开触点断开 常闭触点闭合 置位域复位域指令 置位域指令将指定的地址开始的连续若干个地址置位 变为1状态并保持 复位域指令将指定的地址开始的连续若干个地址复位 变为0状态并保持 置位 复位指令 1 S R指令中的2表示从指定的Q0 0开始的两个触点 即Q0 0与Q0 1 2 在检测到I0 0闭合的上升沿时 输出线圈Q0 0 Q0 1被置为1 并保持 而不论I0 0为何种状态 3 在检测到I0 1闭合的上升沿时 输出线圈Q0 0 Q0 1被复位为0 并保持 而不论I0 0为何种状态 指令说明 1 指定触点一旦被置位 则保持接通状态 直到对其进行复位操作 而指定触点一旦被复位 则变为接通状态 直到对其进行复位操作 2 如果对定时器和计数器进行复位操作 则被指定的T或C的位被复位 同时其当前值被清0 复位优先 置位优先锁存器 复位优先锁存器 置位优先锁存器 输出线圈可选 指令功能RS复位优先锁存器 当置位信号和复位信号都有效时 复位信号优先 输出线圈不接通 SR置位优先锁存器 当置位信号和复位信号都有效时 置位信号优先 输出线圈接通 RS SR指令均为锁存器 一个复位优先 一个置位优先 S连接置位输入 R连接复位输入 一旦输出线圈被置位 则保持置位状态直到复位输入接通 置位 复位输入均以高电平状态有效 例 抢答器的设计抢答器有三个输入 分别为I0 0 I0 1和I0 2 输出分别为Q4 0 Q4 1和Q4 2 复位输入是I0 4 要求 三人中任意抢答 谁先按按钮 谁的指示灯优先亮 且只能亮一盏灯 进行下一问题时主持人按复位按钮 抢答重新开始 抢答器程序 边沿指令 位逻辑指令 边缘检测触点指令 如果输入信号I0 6由0变为1状态 即输入信号I0 6的上升沿 则该触点接通一个扫描周期 触点下面的M4 3为边缘存储位 用来存储上一个扫描循环是I0 6的状态 通过比较输入信号的当前状态和上一次循环的状态来检测信号的边沿 边沿存储位的地址只能在程序中使用一次 它的状态不能在其他地方被改写 只能使用M 全局DB和静态局部变量来作边沿存储位 不能使用临时局部数据或I O变量来作边沿存储位 位逻辑指令 P TRIG与N TRIG指令 在流进P TRIG指令的CLK输入端的能流的上升沿 Q端输出一个扫描周期的能流 使M8 1置位 P TRIG指令与N TRIG指令不能放在电路的开始处和结束处 位逻辑指令 3种边沿检测指令的功能 以上升沿检测为例 在P触点指令中 触点上面的地址的上升沿 该触点接通一个扫描周期 因此P触点用于检测触点上面地址的上升沿 并且直接输出上升沿脉冲 在P线圈的能流的上升沿 线圈上面的地址在一个扫描周期为1状态 因此P线圈用于检测能流的上升沿 并用线圈上面的地址来输出上升沿脉冲 P TRIG指令用于检测能流的上升沿 并且直接输出上升沿脉冲 如果P TRIG指令左边只有I1 0触点 可以用I1 0的P触点来代替P TRIG指令 例 按动一次瞬时按钮I0 0 输出Q4 0亮 再按动一次按钮 输出Q4 0灭 重复以上 例 若故障信号I0 0为1 使Q4 0控制的指示灯以1Hz的频率闪烁 操作人员按复位按钮I0 1后 如果故障已经消失 则指示灯熄灭 如果没有消失 指示灯转为常亮 直至故障消失 定时器 使用定时器指令可创建编程的时间延迟 S7 1200PLC有4种定时器 TP 脉冲定时器可生成具有预设宽度时间的脉冲 TON 接通延迟定时器输出Q在预设的延时过后设置为ON TOF 关断延迟定时器输出Q在预设的延时过后重置为OFF TONR 保持型接通延迟定时器输出在预设的延时过后设置为ON 在使用R输入重置经过的时间之前 会跨越多个定时时段一直累加经过的时间 RT 通过清除存储在指定定时器背景数据块中的时间数据来重置定时器 每个定时器都使用一个存储在数据块中的结构来保存定时器数据 在编辑器中放置定时器指令时可分配该数据块 接通延迟定时器及其时序图 定时器的背景数据块结构 练习 按下瞬时启动按钮I0 0 5秒后电动机启动 按下瞬时停止按钮I0 1 10秒后电动机停止 例用接通延时定时器设计一个周期振荡电路 用接通延时定时器设计周期和占空比可调的振荡电路 振荡电路的高 低电平时间分别由两个定时器的PT值确定 保持型接通延迟定时器及其时序图 关断延迟定时器及其时序图 脉冲定时器及其时序图 例 用脉冲定时器实现一个周期振荡电路 复位定时器指令 两条运输带顺序相连 为避免运送的物料在1号运输带上堆积 按下起动按钮I0 3 1号带开始运行 8s后2号带自动起动 停机的顺序与起动的顺序相反 按了停止按钮I0 2后 先停2号带 8s后停1号带 Q1 1和Q0 6控制两台电动机M1和M2 参数IN从0变为1将启动TP TON和TONR 从1变0将启动TOF ET为定时开始后经过的时间 或称为已耗时间值 可以不为ET指定地址 它们的数值类型为32位的Time 单位为ms 最大定时时间为T 24D 20H 31M 23S 647MS IEC定时器和IEC计数器属于功能块 调用时需要指定配套的背景数据块 定时器和计数器指令的数据保存在背景数据块中 在梯形图中输入定时器指令时 打开右边的指令窗口将 定时器操作 文件夹中的定时器指令拖放到梯形图中适当的位置 在出现的 调用选项 对话框中修改将要生成的背景数据块的名称 或采用默认的名称 点击 确定 按钮 自动生成数据块 计数器 S7 1200有3种计数器 加计数器 CTU 减计数器 CTD 和加减计数器 CTUD 它们属于软件计数器 其最大计数速率受到它所在的OB的执行速率的限制 如果需要速率更高的计数器 可以使用CPU内置的高速计数器 调用计数器指令时 需要生成保存计数器数据的背景数据块 CU和CD分别是加计数输入和减计数输入 在CU或CD由0变为1是 实际计数值CV加1或减1 复位输入R为1时 计数器被复位 CV被清0 计数器的输入Q变为0 计数器指令 计数器的输入输出参数 加计数器及其时序图 CTU 参数CU的值从0变为1时 CTU使计数值加1 如果参数CV 当前计数值 的值大于或等于参数PV 预设计数值 的值 则计数器输出参数Q 1 如果复位参数R的值从0变为1 则当前计数值复位为0 计数器的背景数据块结构 减计数器及其时序图 CTD 参数CD的值从0变为1时 CTD使计数值减1 如果参数CV 当前计数值 的值等于或小于0 则计数器输出参数Q 1 如果参数LOAD的值从0变为1 则参数PV 预设值 的值将作为新的CV 当前计数值 装载到计数器 计数器指令 加减计数器 CTUD 加计数 CU CountUp 或减计数 CD CountDown 输入的值从0跳变为1时 CTUD会使计数值加1或减1 如果参数CV 当前计数值 的值大于或等于参数PV 预设值 的值 则计数器输出参数QU 1 如果参数CV的值小于或等于零 则计数器输出参数QD 1 如果参数LOAD的值从0变为1 则参数PV 预设值 的值将作为新的CV 当前计数值 装载到计数器 如果复位参数R的值从0变为1 则当前计数值复位为0 加减计数器及其时序图 PV 4 传送带控制一个能够电气启动的传送带 在传送带的起点有两个按钮开关 用于START的S1和用于STOP的S2 在传送带的尾部也有两个按钮开关 S3用于START S4用于STOP 可以从任一端启动或停止传送带 另外 当传送带上的物件到达末端时 传感器S5使传送带停机 传送带示意图 用于传送带系统符号编程的元素 控制传送带程序 风机监控程序某设备有三台风机 当设备处于运行状态时 如果风机至少有两台以上转动 则指示灯常亮 如果仅有一台风机转动 则指示灯以0 5Hz的频率闪烁 如果没有任何风机转动 则指示灯不亮 输入位I0 0 I0 1 I0 2分别为风机1 2 3输入端 通过传送带电机KM1带动传送带传送物品 通过产品检测器PH检测产品通过的数量 传送带每传送24个产品机械手KM2动作1次 进行包装 机械手动作后 延时2秒 机械手的电磁铁切断 通过传送带起动按钮 传送带停机按钮控制传送带的运动 计数器应用举例 产品数量检测 每24个产品机械手动作1次 机械手动作后 延时2秒 机械手的电磁铁切断 测到一个产品 I0 2产生一个正脉冲 使计一个数 C10每计24个数 机械手动作一次 3台电机顺序启动 反序停止控制控制要求 按下启动按钮后 3台电机按M1 M2 M3的顺序隔2s启动 按下停止按钮后 3台电机按M3 M2 M1的顺序隔2s停止 3台电机顺序启动 反序停止控制程序 展厅人数控制系统控制要求 现有一展厅 最多可容纳50人同时参观 展厅进口与出口各装一传感器 每有一人进出 传感器给出一个脉冲信号 试编程实现 当展厅内不足50人时 绿灯亮 表示可以进入 当展厅满50人时 红灯亮 表示不准进入 展厅人数控制系统I O分配表 展厅人数控制程序 运料车自动装 卸料控制控制要求 某运料车如图所示 可在A B两地分别启动 运料车启动后 自动返回A地停止 同时控制料斗门的电磁阀Y1打开 开始装料 1分钟后 电磁阀Y1断开 关闭料斗门 运料车自动向B地运行 到达B地后停止 小车底门由电磁阀Y2控制打开 开始卸料 1分钟后 运料车底门关闭 开始返回A地 之后重复运行 运料车在运行过程中 可用手动开关使其停车 再次启动后 可重复 中内容 图7 43运料车自动装 卸料控制示意图 运料车自动装 卸料控制I O分配表 比较指令 可以使用 等于 操作确定第一个比较值是否等于第二个比较值 要比较的两个值必须为相同的数据类型 该LAD触点比较结果为TRUE时 则该触点会被激活 在程序编辑器中单击该指令后 可以从下拉菜单中选择比较类型和数据类型 可以使用 大于 操作确定第一个比较值是否大于第二个比较值 要比较的两个值必须为相同的数据类型 如果比较为真 则RLO为 1 在比较字符串时 通过字符ASCII码比较字符 例如 a 大于 A 从左到右执行比较 第一个不同的字符决定比较结果 如果较长字符串的左侧部分和较短字符串相同 则认为较长字符串更大 使用IN RANGE和OUT RANGE指令可测试输入值是在指定的值范围之内还是之外 如果比较结果为TRUE 则功能框输出为TRUE 输入参数MIN VAL和MAX的数据类型必须相同 在程序编辑器中单击该指令后 可以从下拉菜单中选择数据类型 例 用比较和计数指令编写开关灯程序 要求灯控按钮I0 0按下一次 灯Q4 0亮 按下两次 灯Q4 0 Q4 1全亮 按下三次灯全灭 如此循环 分析 在程序中所用计数器为加法计数器 当加到3时 必须复位计数器 这是关键 灯控制程序如图所示 梯形图程序如下 例 在HMI设备上可以设定电动机的转速 设定值MW20的范围为100 1440转 分钟 若输入的设定值在此范围内 则延时5秒钟启动电动机Q0 0 否则Q0 1长亮提示 使用OK和NOT OK指令可测试输入的数据是否为符合IEEE规范754的有效实数 图中 当MD0和MD4中为有效的浮点数时 会激活 实数乘 MUL 运算并置位输出 即将MD0的值将与MD4的值相乘 结果存储在MD10中同时Q4 0输出为1 如果输入IN的值为123 4567则输出OUT返回值0 4567 移动指令 可以使用 移动块 操作将一个存储区 源区域 的内容复制到另一个存储区 目标区域 要复制到目标区域的元素个数由参数COUNT指定 要复制的元素的宽度由输入IN的元素宽度定义 复制操作沿地址升序方向进行 只有使能输入EN的信号状态为 1 时 才执行该操作 如果运算执行过程中未发生错误 则输出ENO的信号状态为 1 如果满足下列条件之一 使能输出ENO将返回信号状态 0 输入EN的信号状态为 0 复制的数据量超出输出OUT存储区所提供的数据量 可以通过 填充块 操作使用输入IN的值填充存储区 目标区域 从输出OUT指定的地址开始填充目标区域 重复的复制操作次数由参数COUNT指定 执行该操作时 将选择输入IN的值并将其按照参数COUNT指定的重复次数复制到目标区域 只有使能输入EN的信号状态为 1 时 才执行该操作 如果运算执行过程中未发生错误 则输出ENO的信号状态为 1 如果满足下列条件之一 使能输出ENO将返回信号状态 0 输入EN的信号状态为 0 复制的数据量超出输出OUT存储区所提供的数据量 数据复制操作规则 要复制Bool数据类型 请使用SET BF RESET BF R S或输出线圈 LAD 要复制单个基本数据类型 结构或要复制字符串中的单个字符 请使用MOVE 要复制基本数据类型数组 请使用MOVE BLK或UMOVE BLK要复制字符串 请使用S CONVMOVE BLK和UMOVE BLK指令不能用于将数组或结构复制到I Q或M存储区 数据填充操作规则 要使用BOOL数据类型填充 请使用SET BF RESET BF R S或输出线圈 LAD 要使用单个基本数据类型填充或要在字符串中填充单个字符 请使用MOVE 要使用基本数据类型填充数组 请使用FILL BLK或UFILL BLK FILL BLK和UFILL BLK指令不能用于将数组填充到I Q或M存储区 转换指令 转换 操作读取参数IN的数据 然后根据指定的数据类型对其进行转换 仅当使能输入EN的信号状态为 1 时 才能启动 转换 操作 如果执行过程中未发生错误 则输出ENO的信号状态也为 1 如果满足下列条件之一 使能输出ENO将返回信号状态 0 输入EN的信号状态为 0 处理过程中发生溢出之类的错误 可以使用 取整数字值 运算将输入IN的值取整为最接近的整数 该运算将输入IN的值解释为浮点数并将其转换为最接近的双精度整数 如果输入值恰好是相邻偶数和奇数的平均数 则选择偶数 运算结果放在输出OUT中 可供查询 只有使能输入EN的信号状态为 1 时 才执行该操作 如果运算执行过程中未发生错误 则输出ENO的信号状态为 1 如果满足下列条件之一 使能输出ENO将返回信号状态 0 输入EN的信号状态为 0 可以使用 浮点数向上取整 运算将输入IN的值向上取整为相邻整数 该运算将输入IN的值解释为浮点数并将其向上转换为相邻的整数 运算结果放在输出OUT中 可供查询 输出值可以大于或等于输入值 只有使能输入EN的信号状态为 1 时 才执行该操作 如果运算执行过程中未发生错误 则输出ENO的信号状态为 1 如果满足下列条件之一 使能输出ENO将返回信号状态 0 输入EN的信号状态为 0 可以使用 浮点数向下取整 运算将输入IN的值向下取整为相邻整数 该运算将输入IN的值解释为浮点数并将其向下转换为相邻的整数 运算结果放在输出OUT中 可供查询 输出值可以小于或等于输入值 只有使能输入EN的信号状态为 1 时 才执行该操作 如果运算执行过程中未发生错误 则输出ENO的信号状态为 1 如果满足下列条件之一 使能输出ENO将返回信号状态 0 输入EN的信号状态为 0 可以使用 截取整数 运算得出整数而不对输入IN的值进行舍入 输入IN的值被视为浮点数 该运算仅选择浮点数的整数部分 并将其发送到输出OUT中 不带小数位 只有使能输入EN的信号状态为 1 时 才执行该操作 如果运算执行过程中未发生错误 则输出ENO的信号状态为 1 如果满足下列条件之一 使能输出ENO将返回信号状态 0 输入EN的信号状态为 0 可以使用 标定 运算通过将输入VALUE的值映射到指定的取值范围对该值进行标定 执行 标定 运算时 会将输入VALUE的浮点数值标定到由参数MIN和MAX定义的取值范围 标定结果为整数 并存储在输出OUT中 只有使能输入端EN的信号状态为 1 时 才执行 标定 运算 在这种情况下 使能输出ENO的信号状态也为 1 可以使用 标准化 运算通过将输入VALUE的变量值映射到线性标尺对其进行标准化 可以使用参数MIN和MAX定义 应用于该标尺的 取值范围的限值 根据标准化值在该取值范围内的位置 计算结果并以浮点数形式存储在输出OUT中 如果要标准化的值等于输入MIN的值 输出OUT将返回值 0 0 如果要标准化的值等于输入MAX的值 输出OUT将返回值 1 0 程序控制指令 可以使用 为1时块中跳转 有条件 目标程序段必须标有跳转标签 需要指定该跳转标签的名称以便执行该操作 指定的跳转标签位于该操作的上方 指定的跳转标签必须在执行该操作的块中 指定的名称在块中只能出现一次 如果该操作的输入端的逻辑运算结果为 1 则跳转到跳转标签所标识的程序段 跳转方向可以朝向更大或更小的程序段编号 如果该操作的输入不为真 RLO 0 则程序继续在下一个程序段中执行 可以使用 跳转标签 指定跳转的目标程序段 程序应在目标程序段中继续执行 跳转标签的名称可以包含字母 数字或下划线 跳转标签以及指定了该跳转标签的操作必须位于同一个块中 跳转标签的名称在块中只能分配一次 可以使用 为0时块中跳转 有条件 操作 目标程序段必须标有跳转标签 需要指定该跳转标签的名称以便执行该操作 指定的跳转标签位于该操作的上方 指定的跳转标签必须在执行该操作的块中 指定的名称在块中只能出现一次 如果该操作的输入端的逻辑运算结果 RLO 为 0 则跳转到跳转标签所标识的程序段 跳转方向可以朝向更大或更小的程序段编号 如果该操作的输入端的逻辑运算结果为 1 则程序在下一个程序段中继续执行 可以使用 返回 操作停止块的执行 只有左侧接头的信号状态为 1 时 才会执行该操作 如果满足该条件 将在当前被调用块中终止程序执行并在调用块 例如 在调用OB中 中的调用功能后继续执行 调用功能的状态由 返回 操作的参数决定 该参数可以为以下值 TRUE 调用功能的输出ENO置位为 1 FALSE 调用功能的输出ENO复位为 0 调用功能的输出ENO由指定操作数的信号状态决定 如果组织块被 返回 操作终止 则CPU继续执行系统程序 如果 返回 操作输入端的信号状态为 0 则不执行该操作 在这种情况下 程序继续在被调用块的下一个程序段中执行 图无条件跳转 图条件跳转 字逻辑运算指令 可以使用 AND逻辑运算 将输入IN1的值与输入IN2的值通过AND逻辑逐位运算 并通过输出OUT查询结果 执行该运算时 输入IN1的值的位0与输入IN2的值的位0通过AND逻辑进行运算 结果存储在输出OUT的位0中 对指定值的所有其它位都执行相同的逻辑运算 仅当该逻辑运算中的两个位的信号状态均为 1 时 结果位的信号状态才为 1 如果该逻辑运算的两个位中有一个位的信号状态为 0 则对应的结果位将复位 只有使能输入EN的信号状态为 1 时 才执行该操作 在这种情况下 输出ENO的信号状态也为 1 如果使能输入EN的信号状态为 0 则使能输出ENO的信号状态复位为 0 可以使用 解码 运算在输出值中置位一个位 该位通过输入值指定 解码 运算读取输入IN的值 然后在输出值中置位一个位 该位位置与读取的值一致 输出值中的其它位以零填充 只有使能输入EN的信号状态为 1 时 才能启动 解码 运算 如果执行过程中未发生错误 则输出ENO的信号状态也为 1 如果使能输入EN的信号状态为 0 则使能输出ENO的信号状态复位为 0 可以使用 编码 运算读取输入值中最低有效置位位的位号并将其发送到输出OUT 编码 运算选择输入IN值的最低有效位并将该位号写入输出OUT的变量中 只有使能输入EN的信号状态为 1 时 才能启动 编码 运算 如果执行过程中未发生错误 则输出ENO的信号状态也为 1 如果使能输入EN的信号状态为 0 则使能输出ENO的信号状态复位为 0 选择 操作依靠一个开关 参数G 选择输入IN0或IN1中的一个并将其数据复制到输出OUT 如果参数G的信号状态为 0 则复制输入IN0的值 如果参数G的信号状态为 1 则将输入IN1的值复制到输出OUT 只有使能输入EN的信号状态为 1 时 才执行该操作 如果执行过程中未发生错误 则输出ENO的信号状态也为 1 如果使能输入EN的信号状态为 0 或执行该操作期间出错 将复位使能输出ENO 可以使用 多路复用 操作将所选输入的数据复制到输出OUT 功能框MUX的可选输入数可以扩展 输入会在该功能框中自动编号 从IN0起开始编号 每个新输入的编号连续递增 可以使用参数K确定应该将哪个输入的数据复制到输出OUT 如果参数K的值大于可用输入数 则将参数ELSE的数据复制到输出OUT 并将使能输出ENO设置为信号状态 0 只有所有输入的变量和输出OUT的变量具有相同数据类型时 才能执行 多路复用 操作 参数K例外 因为只能为其指定整数 只有使能输入EN的信号状态为 1 时 才执行该操作 如果执行过程中未发生错误 则输出ENO的信号状态也为 1 移位和循环指令 可以使用 右移 操作将输入IN的变量数据逐位右移 并通过输出OUT查询结果 使用参数N设置指定将移位的位数 参数N的值为 0 时 输入IN的值将被复制到输出OUT的变量中 当参数N的值大于位数时 输入IN的变量值将按其可用位数向右移位 无符号值移位时 用零填充变量左侧区域中空出的位 如果指定值有符号 则用符号位的信号状态填充空出的位 可以使用 左移 操作将输入IN中的变量数据逐位左移 并通过输出OUT查询结果 使用参数N设置指定将移位的位数 参数N的值为 0 时 输入IN的值将被复制到输出OUT的变量中 当参数N的值大于位数时 输入IN的变量值将按其可用位数向左移位 用零填充变量右侧部分因移位空出的位 可以使用 循环右移 操作将输入IN的变量数据逐位循环右移 并通过输出OUT查询结果 参数N指定将循环移位的位数 用挤出的位填充因循环移位空出的位 参数N的值为 0 时 输入IN的值将被复制到输出OUT的变量中 当参数N的值大于位数时 输入IN的变量值将按其可用位数进行循环移位 可以使用 循环左移 操作将输入IN的变量数据逐位循环左移 并通过输出OUT查询结果 参数N指定将循环移位的位数 用挤出的位填充因循环移位空出的位 参数N的值为 0 时 输入IN的值将被复制到输出OUT的变量中 当参数N的值大于位数时 输入IN的变量值将按其可用位数进行循环移位 例 通过循环指令实现彩灯控制 编写程序如图5 30所示 其中I0 0为控制开关 M1 5为周期为1s的时钟存储器位 实现的功能为当按下I0 0 QD4中为1的输出位每秒钟向左移动1位 第1段程序的功能是赋初值 即将QD4中的Q7 0置位 第2段程序的功能是每秒钟QD4循环左移一位 5 2扩展指令 S7 1200的扩展指令包括日期和时间指令 字符串和字符指令 程序控制指令 通信指令 中断指令 PID控制指令 运动控制指令 脉冲指令等 日期和时间指令 使用T CONV可将输入IN的值转换成输出OUT指定的数据格式 可实现下列转换 时间 TIME 到数字值 DINT 的转换数值 DINT 到时间 TIME 的转换通过选择指令输入和输出的数据类型来决定转换的类型 可通过输出OUT查询转换结果 使用T ADD可将输入IN1的时间与输入IN2的时间相加 通过输出OUT查询结果 可以对下列格式进行相加操作 时间段 TIME 与时间段 TIME 相加 结果可以输出到TIME格式的变量中 时间段 TIME 与时间点 DTL 相加 结果可以输出到DTL格式的变量中 通过选择指令输入和输出的数据类型来决定输入IN1和输出OUT的格式 在输入IN2中 只能指定TIME格式的时间 使用T SUB可将输入IN1的时间与输入IN2的时间相减 通过输出OUT查询差值 可以对下列格式进行相减操作 时间段 TIME 与时间段 TIME 相减 结果可以输出到TIME格式的变量中 从某时间点 DTL 减去一个时间段 TIME 结果可以输出到DTL格式的变量中 通过选择指令输入和输出的数据类型来决定输入IN1和输出OUT的格式 在输入IN2中 只能指定TIME格式的时间 使用T DIFF可将输入IN1的时间与输入IN2的时间相减 以TIME格式通过输出OUT输出结果 在输入IN1和IN2中只能指定DTL格式的值 如果在输入IN2中指定的时间大于在输入IN1中指定的时间 则结果将以负值的形式通过输出OUT输出 如果该指令的结果超出允许范围 则此结果将限制为相应的值 并且使能输出ENO将设置为 0 可使用WR SYS T设置CPU时钟的日期和时间 在指令的输入IN指定DTL格式的日期和时间 在输出RET VAL中 可以查询指令执行期间是否出错 不能使用 WR SYS T 指令发送有关本地时区或夏令时的信息 可使用RD SYS T读取CPU时钟的当前日期和当前时间 数据以DTL格式放在指令的输出OUT中 得出的值不包含有关本地时区或夏令时的信息 在输出RET VAL中 可以查询指令执行期间是否出错 可使用RD LOC T从CPU时钟读取当前本地时间 并在输出OUT以DTL格式输出该值 在CPU时钟的组态中设置的时区和夏令时开始时间以及标准时间 其相关信息均包括在本地时间信息中 字符串转换指令 使用S CONV可将输入IN的值转换成在输出OUT中指定的数据格式 可实现下列转换 字符串 STRING 转换为数字值 在输入IN中指定的字符串的所有字符都将进行转换 允许的字符为数字0到9 小数点以及加号和减号 字符串的第一个字符可以是有效数字或符号 前导空格和指数表示将被忽略 无效字符可能会中断字符转换 此时 使能输出ENO将设置为 0 可通过选择输出OUT的数据类型来决定转换的输出格式 数字值转换为字符串 STRING 通过选择输入IN的数据类型来决定要转换的数字值格式 必须在输出OUT中指定一个有效的STRING数据类型的变量 转换后的字符串长度取决于输入IN的值 由于第一个字节包含字符串的最大长度 第二个字节包含字符串的实际长度 因此转换的结果从字符串的第三个字节开始存储 输出正数字值时不带符号 复制字符串 如果在指令的输入和输出均输入STRING数据类型 则输入IN的字符串将被复制到输出OUT 如果输入IN字符串的实际长度超出输出OUT字符串的最大长度 则将复制IN字符串中完全适合OUT的字符串的那部分 并且使能输出ENO将设置为 0 值 使用STRG VAL可将字符串转换为数字值 在输入IN中指定要转换的字符串 可通过选择输出OUT的数据类型来决定输出值的格式 通过输出OUT查询结果 从参数P中指定位置的字符开始转换 例如 如果参数P中指定的值为 1 则将从指定字符串的第一个字符开始转换 转换允许的字符为数字0到9 小数点 逗号小数点 符号 E 和 e 以及加号和减号字符 无效字符可能会中断转换 此时 使能输出ENO将设置为 0 使用参数FORMAT可指定要如何解释字符串中的字符 也可以使用 STRG VAL 指令来转换和表示指数值 只能为参数FORMAT指定USINT数据类型的变量 使用VAL STRG可将数字值转换为字符串 在输入IN中指定要转换的值 通过选择数据类型来决定数字值的格式 通过输出OUT查询转换结果 通过参数P可指定从字符串中的哪个字符开始写入结果 例如 如果参数P中指定的值为 2 则将从字符串的第二个字符开始保存转换值 通过参数SIZE可以指定字符串中写入的字符数 这要从参数P中指定的字符开始算起 如果由参数P和SIZE定义的长度不够 则使能输出ENO将设置为 0 如果输出值比指定长度短 则结果将以右对齐方式写入字符串 空字符位置将填入空格 转换允许的字符为数字0到9 小数点 逗号小数点 符号 E 和 e 以及加号和减号字符 无效字符可能会中断转换 此时 使能输出ENO将设置为 0 使用参数FORMAT可指定在转换期间如何解释数字值以及如何将其写入字符串 只能为参数FORMAT指定USINT数据类型的变量 字符串操作指令 STRING类型的变量包含两个长度 最大长度和当前长度 即当前有效字符的数量 每个变量的字符串最大长度在STRING关键字的方括号中指定 当前长度表示实际使用的字符位置数 当前长度必须小于或等于最大长度 字符串占用的字节数为最大长度加2 可使用 LEN 指令查询在输入IN中指定的字符串的当前长度 并在输出OUT以数字值的形式将其输出 空字符串 的长度为零 如果操作处理期间出错 则将输出空字符串 CONCAT连接字符串参数IN1和IN2以形成一个字符串 并放在OUT中 目标字符串必须足够长 否则结果字符串将被截短并且使能输出ENO将设置为 0 值 如果指令处理期间出错并且可以写入到输出OUT 则将输出空字符串 可使用LEFT从输入IN字符串的第一个字符开始提取出一部分字符串 通过参数L指定要提取的字符数 以STRING格式通过输出OUT输出提取的字符 如果要提取的字符数大于字符串的当前长度 则输出OUT将返回输入字符串 参数L的值为 0 时或者输入值为空字符串时都将返回空字符串 如果参数L的值为负值 则将输出空字符串并且使能输出ENO将设置为 0 值 可使用MID将输入IN字符串的一部分提取出来 可通过参数P指定要提取的第一个字符的位置 通过参数L指定要提取的字符串长度 提取的部分字符串通过输出OUT输出 执行该指令时应遵守以下规则 如果要提取的字符数超出输入IN字符串的当前长度 则将输出从字符位置P开始到该字符串末尾的这一部分字符串 如果通过参数P指定的字符位置超出输入IN字符串的当前长度 则将通过输出OUT输出空字符串并且使能输出ENO将设置为 0 值 如果参数L或P的值等于零或为负值 则将通过输出OUT输出空字符串并且使能输出ENO将设置为 0 值 可使用DELETE将输入IN字符串的一部分删除 可通过参数P指定要删除的第一个字符的位置 可使用参数L指定要删除的字符数 剩余部分的字符串通过输出OUT以STRING格式输出 执行该指令时应遵守以下规则 如果参数L或P的值等于零 则输出OUT将返回输入字符串 如果参数P的值大于输入IN字符串的当前长度 则输出OUT将返回输入字符串 如果要删除的字符数大于输入IN字符串的长度 则将输出空字符串 如果参数L或P的值为负值 则将输出空字符串并且使能输出ENO将设置为 0 值 从字符串1的某个字符位置开始插入字符串2 并将结果存储在目标字符串中 可使用参数P指定要插入字符的字符位置 以STRING格式通过输出OUT输出结果 执行该指令时应遵守以下规则 如果参数P的值超出输入IN1字符串的当前长度 则输入IN2的字符串将附加到输入IN1的字符串的后面 如果参数P的值为负值或等于零 则将通过输出OUT输出空字符串 使能输出ENO将设置为 0 值 如果结果字符串比在输出OUT中指定的变量长 则结果字符串将被限制为有效长度 使能输出ENO将设置为 0 值 可使用REPLACE将输入IN1的字符串替换为输入IN2的字符串 可通过参数P指定要替换的第一个字符的位置 通过参数L指定要替换的字符数 以STRING格式通过输出OUT输出结果 执行该指令时应遵守以下规则 如果参数L的值等于零 则输出OUT将返回输入IN1的字符串 如果P等于1 则将从输入IN1字符串的第一个字符开始 包括该字符 对其进行替换 如果参数P的值超出输入IN1字符串的当前长度 则输入IN2的字符串将附加到输入IN1的字符串的后面 如果参数P的值为负值或等于零 则将通过输出OUT输出空字符串 使能输出ENO将设置为 0 值 如果结果字符串比在输出OUT中指定的变量长 则结果字符串将被限制为有效长度 使能输出ENO将设置为 0 值 可使用FIND来搜索输入IN1的字符串以查找特定字符或特定字符串 在输入IN2中指定要搜索的值 搜索从左向右进行 将通过输出OUT输出第一个搜索结果的位置 如果搜索未返回任何匹配值 则将通过输出OUT输出 0 值 如果指令处理期间出错 则将输出空字符串 某十字路口 东西方向车流量较小 南北方向车流量较大 东西方向上绿灯亮30秒 南北方向上绿灯亮40秒 绿灯向红灯转换中间黄灯亮5秒且闪烁 红灯在最后5秒闪烁 十字路口红绿灯示意图如图所示 试利用PLC进行控制 并编写梯形图程序 执行机构与动作过程 虽然十字路口有12只红绿灯 但同一个方向上的同色灯 如灯1与灯7 同时动作 应作为一个输出 所以共有6个输出 由于一个方向上亮绿灯或黄灯时 另一个方向上肯定亮红灯 所以亮红灯可不作为一个单独的时间状态 十字路口红绿灯工作为循环方式 循环周期为80秒 由4部分组成 40秒 5秒 30秒 5秒 程序控制指令 TSEND C是异步指令且具有以下功能 设置并建立通信连接 TSEND C可设置并建立TCP或ISO on TCP通信连接 设置并建立连接后 CPU会自动保持和监视该连接 在参数CONNECT中指定的连接描述用于设置通信连接 要建立连接 参数CONT的值必须设置为 1 连接成功建立后 参数DONE在一个周期内设置为 1 若CPU转到STOP模式 将终止现有连接并删除所设置的相应连接 必须再次执行TSEND C 才能重新设置并建立该连接 通过现有通信连接发送数据 通过参数DATA可指定要发送的区域 这包括要发送数据的地址和长度 在参数REQ中检测到上升沿时执行发送作业 使用参数LEN指定通过一个发送作业可发送的最大字节数 在发送作业完成前不允许编辑要发送的数据 如果发送作业成功执行 则参数DONE将设置为 1 参数DONE的信号状态为 1 并不表示是确认通信伙伴已读取发送数据 终止通信连接 参数CONT设置为 0 时 将终止通信连接 通信指令 设置并建立通信连接 TRCV C可设置并建立TCP或ISO on TCP通信连接 设置并建立连接后 CPU会自动保持和监视该连接 使用参数CONNECT指定的连接描述 可以设置通信连接 要建立连接 参数CONT的值必须设置为 1 连接成功建立后 参数DONE在一个周期内设置为 1 若CPU转到STOP模式 将终止现有连接并删除所设置的相应连接 必须再次执行TRCV C 才能重新设置并建立该连接 通过现有通信连接接收数据 如果参数EN R的值设置为 1 则启用数据接收 接收到的数据将输入到接收区中 根据所用的协议选项 通过参数LEN指定接收区长度 如果LEN0 或者通过参数DATA的长度信息来指定 如果LEN 0 成功接收数据后 参数DONE的信号状态为 1 如果数据传送过程中出错 参数DONE将设置为 0 终止通信连接 参数CONT设置为 0 时 将终止通信连接 点对点指令 点对点指令 启动和取消延时中断指令 禁用和启用报警中断指令 PID控制指令 运动控制指令 脉冲指令 5 3全局库指令 USS协议库指令 Modbus协议库指令
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!