学习PLC不应该只学指令,但也应该了解,西门子PLC指令汇总
首先声明;这是西门子S7-300/400的指令,与博途有一些区别。
大家举一反三!
1、位逻辑指令
1.1 -||- 常开接点(地址)
1.2 -|/|- 常闭接点(地址)
1.3 XOR 位异或
1.4 -|NOT|- 信号流反向
1.5 -( ) 输出线圈
1.6 -(#)- 中间输出
1.7 -(R) 线圈复位
1.8 -(S) 线圈置位
1.9 RS 复位置位触发器
1.10 RS 置位复位触发器
1.11 -(N)- RLO下降沿检测
1.12 -(P)- PLO上升沿检测
1.13 -(SAVE) 将RLO存入BR存储器
1.14 MEG 地址下降沿检测
1.15 POS 地址上升沿检测
2、比较指令
2.1 CMP?I 整数比较
2.2 CMP?D 双整数比较
2.3 CMP?R 实数比较
3、转换指令
3.1 BCD_IBCD码转换为整数
3.2 I_BCD 整数转换为BCD码
3.3 I_DINT 整数转换为双整数
3.4 BCD_DIBCD码转换为双整数
3.5 DI_BCD 双整数转换为BCD码
3.6 DI_REAL 双整数转换为浮点数
3.7 INV_I 整数的二进制反码
3.8 INV_DI 双整数的二进制反码
3.9 NEG_I 整数的二进制补码
3.10 NEG_DI 双整数的二进制补码
3.11 NEG_R 浮点数求反
3.12 ROUND 舍入为双整数
3.13 TRUNC 舍去小数取整为双整数
3.14 CEIL 上取整
3.15 FLOOR 下取整
4、计数器指令
4.1 S_CUD 加减计数
4.2 S_CU 加计数器
4.3 S_CD 减计数器
4.4 -(SC) 计数器置初值
4.5 -(CU) 加计数器线圈
4.6 -(CD) 减计数器线圈
5、数据块指令
5.1 -(OPN) 打开数据块:DB或DI
6、逻辑控制指令
6.1 -(JMP) 无条件跳转
6.2 -(JMP) 条件跳转
6.3 -(JMPN) 若非则跳转
6.4 LABEL 标号
7、整数算术运算指令
7.1 ADD_I 整数加法
7.2 SUB_I 整数减法
7.3 MUL_I 整数乘法
7.4 DIV_I 整数除法
7.5 ADD_DI 双整数加法
7.6 SUB_DI 双整数减法
7.7 MUL_DI 双整数乘法
7.8 DIV_DI 双整数除法
7.9 MOD_DI 回送余数的双整数
8、浮点算术运算指令
8.1 基础指令
8.1.1 ADD_R 实数加法
8.1.2 SUB_R 实数减法
8.1.3 MUL_R 实数乘法
8.1.4 DIV_R 实数除法
8.1.5 ABS 浮点数绝对值运算
8.2 扩展指令
8.2.1 SQR 浮点数平方
8.2.2 SQRT 浮点数平方根
8.2.3 EXP 浮点数指数运算
8.2.4 LN 浮点数自然对数运算
8.2.5 SIN 浮点数正弦运算
8.4.6 COS 浮点数余弦运算
8.2.7 TAN 浮点数正切运算
8.2.8 ASIN 浮点数反正弦运算
8.2.9 ACOS 浮点数反余弦运算
8.2.10ATAN 浮点数反正切运算
9、赋值指令
9.1 MOVE 赋值
10、程序控制指令
10.1 -(Call) 从线圈调用FC/SFC(无参数)
10.2 CALL_FB 从方块调用FB
10.3 CALL_FC 从方块调用FC
10.4 CALL_SFB 从方块调用SFB
10.5 CALL_SFC 从方块调用SFC
10.6 -(MCR<>主控继电器接通
10.7 -(MCR>) 主控继电器断开
10.8 -(MCRA) 主控继电器启动
10.9 -(MCRD) 主控继电器停止
10.10 -(RET) 返回
11、移位和循环指令
11.1 移位指令
11.1.1 SHR_I 整数右移
11.1.2 SHR_DI 双整数右移
11.1.3 SHL_W 字左移
11.1.4 SHR_W 字右移
11.1.5 SHL_DW 双字左移
11.1.6 SHR_DW 双字右移
11.2 循环指令
11.2.1 ROL_DW 双字左循环
11.2.2 ROR_DW 双字右循环
12、状态位指令
12.1 OV -||- 溢出异常位
12.2 OS -||- 存储溢出异常位
12.3 UO -||- 无序异常位
12.4 BR -||- 异常位二进制结果
12.5 ==0-||- 结果位等于'0'
12.6 <>0-||- 结果位不等于'0'
12.7 >0-||- 结果位大于'0'
12.8 <>结果位小于'0'
12.9 >=0-||- 结果位大于等于'0'
12.10 <=0-||->
13、定时器指令
13.1 S_PULSE 脉冲S5定时器
13.2 S_PEXT 扩展脉冲S5定时器
13.3 S_ODT 接通延时S5定时器
13.4 S_ODTS 保持型接通延时S5定时器
13.5 S_OFFDT 断电延时S5定时器
13.6 -(SP) 脉冲定时器线圈
13.7 -(SE) 扩展脉冲定时器线圈
13.8 -(SD) 接通延时定时器线圈
13.9 -(SS) 保持型接通延时定时器线圈
13.10 -(SF) 断开延时定时器线圈
14、字逻辑指令
14.1 WAND_W 字和字相'与'
14.2 WOR_W 字和字相'或'
14.3 WAND_DW 双字和双字相'与'
14.4 WOR_DW 双字和双字相'或'
14.5 WXOR_W 字和字相'异或'
14.6 WXOR_DW 双字和双字相'异或“
西门子PLC的USS通信程序原来是这样编写,赶紧转发收藏
点击上方"PLC发烧友"关注我们吧!
S7-200 SMART本体集成的 RS 485 通信口可以工作在自由口模式下,支持 USS 通信协议。
S7-200 SMART 与驱动装置(变频器)进行 USS 通信时可以:
1)根据驱动装置的具体 USS 通信规范,我们自己编程实现 USS 通信。此方式可以保证该驱动装置的所有 USS 通信功能都能得到使用;
2)使用西门子提供的 USS 通信指令库,实现与 Micro Master 系列的 MM3/MM4 和 SINAMICS G110/V20 的USS 通信。此指令库只能有限地支持与其他驱动装置的 USS 连接。
使用西门子提供的 USS 指令库,这样我们就不必自己配置复杂的 PKW/PZD 数据,或者计算校验字节。
S7-200 SMART的 USS 编程主要包括如下几个步骤:
参数设置和硬件接线部分可参考我们技成培训网观看《西门子变频器参数设置和实操训练》课程的相关章节,在这不再阐述;
调用USS初始化指令
S7-200 SMART USS 标准指令库包括 USS_INIT、USS_CTRL、USS_RPM_X、USS_WPM_X等指令。调用这些指令时会自动增加一些子程序和中断服务程序。
USS 库应用首先要进行 USS 通信的初始化。使用 USS_INIT 指令初始化 USS 通信功能。
图 1. 选择 USS_INIT 指令
打开 USS 指令库分支,像调用子程序一样调用 USS_INIT 指令。
图 2. 调用 USS_INIT 指令
图中:
EN:初始化程序 USS_INIT 只需在程序中执行一个周期就能改变通信口的功能,以及进行其他一些必要的初始设置,因此可以使用 SM0.1 或者沿触发的接点调用 USS_INIT 指令;
Mode:模式选择,执行 USS_INIT 时 ,Mode 的状态决定在通讯端口上是否使用 USS 通信功能;
=1 设置为 USS 通信协议并进行相关初始化
=0 恢复为 PPI 协议并禁用USS通信
Baud:USS 通信波特率。此参数要和变频器的参数设置一致;
=1200
1200 bit/s
2400 表示2400 bit/s
4800表示4800 bit/s
9600表示9600 bit/s
19200表示19200 bit/s
38400表示38400 bit/s
57600表示57600 bit/s
115200表示115200 bit/s
Port: 0 = CPU 集成的 RS485 通讯端口;=1可选CM01 信号板。
Active:此参数决定网络上的哪些 USS 从站在通信中有效。详见下面的说明;
Done:初始化完成标志
Error:初始化错误代码;对应的代码如下:
USS 库指令错误代码
错误代码
错误描述
0
无错误
1
驱动装置无响应
2
来自驱动的响应中检测到校验和错误
3
来自驱动的响应中检测到奇偶校验错误
4
用户程序干扰引起错误
5
尝试执行非法命令
6
提供了无效的驱动装置地址
7
通信口未定义为 USS 协议
8
通信口忙于处理其他指令
9
驱动装置速度设定输入值超限
10
驱动装置返回的信息长度不正确
11
驱动装置返回报文的第一个字符不正确(不是 02 h)
12
驱动装置返回的长度信息不被 USS 指令支持
13
响应的驱动装置不正确
14
提供的 DB_ Ptr 地址不正确
15
提供的参数号不正确
16
选择了错误的协议
17
USS 已激活,不能改变
18
指定了非法的波特率
19
无通信活动:驱动装置未激活
20
驱动装置返回的参数值不正确或包括错误的代码
21
请求一个字长的数据时返回了一个双字数据
22
请求一个双字长的数据时返回了一个字数据
23
端口无效
24
信号板(SB) 端口1缺失或未组态
Active参数
USS_INIT 子程序的 Active 参数用来表示网络上哪些 USS 从站要被主站访问,即在主站的轮询表中激活。网络上作为 USS 从站的驱动装置每个都有不同的 USS 协议地址,主站要访问的驱动装置,其地址必须在主站的轮询表中激活。USS_INIT 指令只用一个 32 位长的双字来映射 USS 从站有效地址表,Active 的无符号整数值就是它在指令输入端的取值。
表 1. 从站地址映射
在这个 32 位的双字中,每一位的位号表示 USS 从站的地址号;要在网络中激活某地址号的驱动装置,则需要把相应位号的位置设为二进制“1",不需要激活 USS 从站,相应的位设置为”0"。最后对此双字取无符号整数就可以得出 Active 参数的取值。
在表 1 的例子中,如果使用站地址为 3 的 MM 440 变频器,则须在位号为 03 的位单元格中填入二进制“1"。其他不需要激活的地址 对应的位设置为”0"。取整数,计算出的 Active 值为 00000008 h,即 16#00000008,也等于十进制数 8(如图 2.中的 e.)
建议使用 16 进制数,这样可以每 4 位一组进行加权计算出 16 进制数,并组合成一个整数。当然也可以表示为十进制或二进制数值,但有时会很麻烦,而且不直观。
如果一时难以计算出有多个 USS 从站配置情况下的 Active 值,可以使用 Windows 自带的计算器。将其设置为科学计算器模式,可以方便地转换数制
调用驱动装置控制指令
USS_CTRL 指令用于对单个驱动装置进行运行控制。这个功能块利用了 USS 协议中的 PZD 数据传输,控制和反馈信号更新较快。
图3.USS_CTRL指令
在 USS 通信指令库分支中选择 USS_CTRL 指令。
EN:使用 SM0.0 使能 USS_CTRL 指令
RUN:驱动装置的启动/停止控制
=0停止=1运行
此停车是按照驱动装置中设置的斜坡减速指电机停止.
OFF2:停车信号 2。此信号为“1"时,驱动装置将封锁主回路输出,电机自由停车
OFF3:停车信号 3。此信号为“1”时,驱动装置将快速停车
F_ACK:故障确认。当驱动装置发生故障后,将通过状态字向 USS 主站报告;如果造成故障的原因排除,可以使用此输入端清除驱动装置的报警状态,即复位。注意这是针对驱动装置(变频器)的操作。
DIR:电机运转方向控制。其“0/1”状态决定运行方向
Drive:驱动装置在 USS 网络上的站号。从站必须先在初始化时激活才能进行控制
Type:向 USS_CTRL 功能块指示驱动装置类型
=0表示MM3系列,或更早的产品
=1表示MM 4 系列,SINAMICS G 110,SINAMICS V 20
Speed_SP:速度设定值。
该速度是全速的一个百分数;“Speed_SP”为负值将导致变频器反向运行。
Resp_R:从站应答确认信号。
主站从 USS 从站收到有效的数据后,此位将为“1"一个程序扫描周期,表明以下的所有数据都是最新的
Error:错误代码。0 = 无出错。其他错误代码请参考USS 库指令错误代码
Status:驱动装置的状态字。此状态字直接来自驱动装置的状态字,表示了当时的实际运行状态
详细的状态字信息意义请参考相应的驱动装置(变频器)手册。
Speed:驱动装置返回的实际运转速度值,实数。
Run_EN:运行模式反馈,表示驱动装置是运行(为 1)还是停止(为 0)
D_Dir:指示驱动装置的运转方向,反馈信号
Inhibit:驱动装置禁止状态指示(0 - 未禁止,1 - 禁止状态)。禁止状态下驱动装置无法运行。要清除禁止状态,故障位必须复位,并且 RUN, OFF2 和 OFF3 都为 0
Fault:故障指示位(0 - 无故障,1 - 有故障)。表示驱动装置处于故障状态,驱动装置上会显示故障代码(如果有显示装置)。要复位故障报警状态,必须先消除引起故障的原因,然后用 F_ACK 或者驱动装置的端子、或操作面板复位故障状态。
此 USS_CTRL 功能块使用了 PZD 数据读写机制,传输速度比较快。但由于它还是串行通信,而且还可能有多个从站需要轮询,因此无法做到“实时”响应。要实现高要求的快速通信,应该使用 PROFIBUS-DP 等网络,同时更换主站为更高级的控制器。
USS_CTRL 已经能完成基本的驱动装置控制,如果需要有更多的参数控制选项,可以选用 USS 指令库中的参数读写指令实现。
调用驱动装置参数读写指令
USS 指令库中共有 6 种参数读写功能块,分别用于读写驱动装置中不同规格的参数。
它们是:
USS 参数读写指令采用与 USS_CTRL 功能块不同的数据传输方式。由于许多驱动装置把参数读写指令用到的 PKW 数据处理作为后台任务,参数读写的速度要比控制功能块 慢一些。因此使用这些指令时需要更多的等待时间,并且在编程时要考虑到,进行相应的处理。
读参数指令
以下的程序段读取SINAMICS V20 实际频率(参数 r0021)。由于此参数是一个实数,因此选用实数型参数读功能块。
参数读写指令必须与参数的类型配合。
调用 USS_RPM_R 指令读取 SINAMICS V20 的实际频率
EN:要使能读写指令此输入端必须为 1
XMT_REQ:发送请求。必须使用一个沿检测触点以触发读操作,它前面的触发条件必须与 EN 端输入一致
Drive:要读写参数的驱动装置在 USS 网络上的地址
Param:参数号(仅数字)。此处也可以是变量
Index:参数下标。有些参数由多个带下标的参数组成一个参数组,下标用来指出具体的某个参数。对于没有下标的参数,可设置为 0
DB_Ptr:读写指令需要一个 16 字节的数据缓冲区,用间接寻址形式给出一个起始地址。此数据缓冲区与“库存储区”不同,是每个指令(功能块)各自独立需要的。
此数据缓冲区也不能与其他数据区重叠,各指令之间的数据缓冲区也不能冲突
Done:读写功能完成标志位,读写完成后置 1
Error:出错代码。0 = 无错误
Value:读出的数据值。该数据值在 “Done”位为1时有效。
EN 和 XMT_REQ 的触发条件必须同时有效,EN 必须持续到读写功能完成(Done 为 1),否则会出错。
来源:PLC发烧友,作者:技成培训网-眭相建,转载请注明出处!文章源程序可免费提供,私信回复:源程序 免费领取! 评论处大家可以补充文章解释不对或欠缺的部分,这样下一个看到的人会学到更多,你知道的正是大家需要的。。。
相关问答
plc中sp指令怎么用?
在PLC中,SP指令用于设置特定的参数值。首先,您需要确定要设置的参数地址。然后,使用SP指令将所需的值加载到该地址中。这可以通过编程软件或HMI界面完成。确保...
三菱plc中的SP指令什么意思?
SP是用于复杂程序(空格)。三菱PLC英文名又称:MitsubishProgrammableLogicController,是三菱电机在大连生产的主力产品。它采用一类可编程的存储器,用于.....
西门子PLC中什么叫PID指令啊?
PID指比例积分微分,Proportion比例,Integration积分,Differentiation微分西门子PLC编程软件中有PID向导,程序中的PID程序块可利用s7-Micro/win程...
plc1510sp最左边网口干嘛用的?
PLC1510SP最左边的网口是用于与其他设备进行通信的接口。它可以连接到局域网或互联网,实现数据传输和远程控制。通过这个网口,PLC1510SP可以与其他设备进行数...
STEP7V5.4inclSP3.1是什么软件?
西门子可编程控制器(plc)的编程软件,可使用梯形图逻辑、功能块图和语句表进行编程操作.step7意思就是7步完成控制的意思。西门子可编程控制器(plc)的编程软件...
plc运行的三个阶段是什么啊?
当PLC处于正常运行时,它将不断重复扫描过程。分析上述扫描过程,如果对远程I/O、特殊模块和其他通讯服务暂不考虑,这样扫描过程就只剩下“输入采样”、“程序执...
PLC可以实现定时控制吗?
可以。PLC中定时器属于脉冲型定时器:这种定时器是当输入条件00000为ON后,定时器即时动作,但经过定时器所设定的时间后,即使输入条件00000仍为ON,定时器却变...
et200sp与plc区别?
1、功能不同:ET200SP模块一般作为PLC的扩展模块使用,用来对外部信号进行输入和输出,扩展PLC的输入输出点数。而PLC则是工业自动化和控制系统中的核心设备,用...
伺服电机怎么连接plc和编程?
伺服电机怎么连接plc和编程,这个首先要看你使用伺服电机的哪种模式,有位置模式、速度模式以及转矩模式,位置模式一般用于定位功能的,最常见最简单的方式就是...
用西门子SP-200PLC怎样编写星三角启动程序?
LDI0.0OQ0.0ANI0.1AI0.2=Q0.0LDQ0.0ANQ0.2ANT37=Q0.1LDT37OQ0.2ANQ0.1AQ0.0=...