西门子6ES7516-3FN02-0AB0现货供应
西门子PLC的几种通信方式?
一、PPI通讯
PPI协议是S7-200CPU基本的通信方式,通过原来自身的端口(PORT0或PORT1)就可以实现通信,是S7-200 CPU默认的通信方式。
PPI是一种主-从协议通信,主-从站在一个令牌环网中。在CPU内用户网络读写指令即可,也就是说网络读写指令是运行在PPI协议上的。因此PPI只在主站侧编写程序就可以了,从站的网络读写指令没有什么意义。
二、RS485串口通讯
第三方设备大部分支持,西门子S7 PLC可以通过选择自由口通信模式控制串口通信。简单的情况是只用发送指令(XMT)向打印机或者变频器等第三方设备发送信息。不管任何情况,都必须通过S7 PLC编写程序实现。
当选择了自由口模式,用户可以通过发送指令(XMT)、接收指令(RCV)、发送中断、接收中断来控制通信口的操作。
三、MPI通讯
MPI通信是一种比较简单的通信方式,MPI网络通信的速率是19.2Kbit/s~12Mbit/s,MPI网络多支持连接32个节点,通信距离为50M。通信距离远,还可以通过中继器扩展通信距离,但中继器也占用节点。
MPI网络节点通常可以挂S7-200、人机介面、编程设备、智能型ET200S及RS485中继器等网络元器件。
西门子PLC与PLC之间的MPI通信一般有3种通信方式:
?至此已经配置完成了Smart 1000 IE与S7-200 SMART CPU的PPI通信。 04启动操作画面 给Smart 1000 IE设备上电时屏幕会短暂出现启动画面,三个按钮代表的含义如下。 Transfer:HMI设备设置为“传送"模式。 Start:启动装载在HMI设备上的项目。 Control Panel:点击该按钮后进入HMI设备的控制面板,用户在控制面板可以选择传输模式,添加等。 05项目文件 要将配置好的项目到Smart 1000 IE设备上,先要保证HMI设备的通信口处于状态,可通过HMI设备的“Control Panel">“Transfer"进行设置,如果选择串口方式项目,先需要勾选“Serial"右侧的“Enable Channel"。 其次,要使用Siemens原装的PPI编程电缆项目,RS-232/PPI电缆(订货号6ES7 901-3CB30-0XA0)和USB/PPI电缆(订货号6ES7 901-3DB30-0XA0)都可以。当使用的电缆是USB/PPI时,要求其E-STAN本是05或更高版本。 接着在WinCC flexible 软件的菜单栏选择“项目">“传送">“传输",单击“传输"即可打开“选择设备进行传送"窗口,在“选择设备进行传送"窗口,用户可以选择传输模式为“串行"或“串口(通过USB-PPI电缆)",在此选择后者进行传输。 给Smart 1000 IE设备断电再上电后,HMI设备将会出现启动画面,单击Transfer按钮,使HMI设备处于“传送"模式。 接着在WinCC flexible软件中选择“项目">“传送">“传输",“传送"按钮,待HMI设备中的传送状态显示为“传输完成"时,至此已成功通过串口模式将项目传送到HMI设备
1、比较指令CMP
CMP指令有三个操作数:两个源操作数[S1.]和[S2.],一个目标操作数[D.],该指令将[S1.]和[S2.]进行比较,结果送到[D.]中。CMP指令使用说明如图所示。
2、区间比较指令ZCP
ZCP指令是将一个操作数[S.]与两个操作数[S1.]和[S2.]形成的区间比较,且[S1.]不得大于[S2.],结果送到[D.]中。ZCP指令使用说明如图所示。
3、传送指令MOV
MOV指令将源操作数的数据传送到目标元件中,即[S.]→[D.]。MOV指令的使用说明如图所示。当X0为ON时,源操作数[S.]中的数据K100传送到目标元件D10中。当X0为OFF,指令不执行,数据保持不变。
4、移位传送指令SMOV
首先将二进制的源数据(D1)转换成BCD码,然后将BCD码移位传送,实现数据的分配、组合。源数据BCD码右起从第4位(m1=4)开始的2位(m2=2)移送到目标D2/的第3位(n=3)和第2位,而D2/的第4和第1两位BCD码不变。然后,目标D2/中的BCD码自动转换成二进制数,即为D2的内容。BCD码值超过9999时出错。
5、取反传送指令CML
CML指令使用说明如图所示。将源操作数中的数据(自动转换成二进制数)逐位取反后传送。
6、块传送指令BMOV
BMOV指令是从源操作数的元件开始的n个数组成的数据块传送到的目标。如果元件号超出允许的元件号范围,数据仅传送到允许的范围内。BMOV指令的使用说明如图所示。
7、多点传送指令FMOV
FMOV指令是将源元件中的数据传送到目标开始的n个目标元件中,这n个元件中的数据相同。FMOV指令使用说明如图所示。
8、数据交换指令XCH
XCH指令是将两个目标元件D1和D2的内容相互交换。使用说明如图所示。
使用该指令,可以中止在当前块中的程序扫描,并跳转到调用当前块的程序块。然后从调用程序中块调用语句后的个指令开始,重新进行程序扫描。并将当前的本地数据区域释放,前一本地数据区域即成为当前本地数据区域。重新打开调用块时打开的数据块。另外,还恢复调用块的MCR相关性,并将RLO从当前块传送到调用当前块的程序块。BE指令与任何条件无关。但是,如果BE指令被跳转,则不结束当前程序扫描,而是在块内跳转到目的地处,继续开始程序扫描。
编程示例:
A I1.0
JC NEXT 说明:如果RLO=1(I1.0 =1),则跳转到NEXT跳转标号
L IW4 如果没有执行跳转,则在此继续程序扫描
T IW10
A I6.0
A I6.1
S M 12.0
BE 块结束
NEXT:NOP 0 如果执行了跳转,则在此继续程序扫描。
plc的块无条件结束指令BEU
使用该指令,可以中止在当前块中的程序扫描,并跳转到调用当前块的程序块。然后从块调用语句后的个指令开始,重新进行程序扫描。并将当前的本地数据区域释放,前一本地数据区域即成为当前本地数据区域。调用块时打开的数据块将被重新打开。另外,还恢复调用块的MCR相关性,并将RLO从当前块传送到调用当前块的程序块。该指令与任何条件无关。但是如果该指令被跳转,则不结束当前程序扫描,而是从块内跳转目的地处继续。
编程示例:
A I 1.0
JC NEXT 说明:如果RLO=1(I1.0=1),则跳转到NEXT跳转标号
L IW4 如果没有执行跳转,则继续程序扫描
T IW10
A I 6.0
A I 6.1
S M 12.0
BEU 块无条件结束
NEXT:NOP 0 如果执行了跳转,则继续程序扫描
使用循环指令( LOOP)可以多次重复执行特定的程序段,由累加器1确定重复执行的次数,即以累加器1的低字为循环计数器。LOOP指令执行时,将累加器1字中的值减1,如果不为0,则返回到循环指令LOOP的标号处,继续循环过程,否则执行LOOP指令后面的指令。循环体是指循环标号和LOOP指令间的程序段。
由于循环次数不能是负数,因此程序应保证循环计数器中的数为正整数(数值范围:0~32767)或字型数据(数值范围:W#16#0000~ W#16#FFFF)。存储区为I、Q、M、D、L。LOOP语句的流程如图所示。
图 LOOP语句的流程图
利用循环指令可以完成有规律的重复计算过程。
编程示例(求阶乘“8!”的程序)如下:
L L#1 说明:将长整数常数(32位)装入累加器1
T MD20 将累加器1的内容传送到MD20(初始化)
L 8 将循环次装入累加器1的低字中
NEXT:T MW10 循环开始,将累加器1低字的内容(循环变量值)送给循环计数器MW10
L MD20 取部分积
*D MD20×MW10
T MD20 存部分积,循环结束后MD20=8×7 ×6×5 ×4×3 ×2 ×1=40320
L MW10 取当前循环变量值→累加器1
LOOP NEXT 如果累加器1低字中的内容不为0,则转到NEXT继续循环执行并对
累加器1的低字减1循环结束,执行其他指令