广西 西门子300系列plc模块-全国一级代理PLC受权总地区代理

2025-05-28 08:00 223.74.132.147 1次
发布企业
广东湘恒智能科技有限公司商铺
认证
资质核验:
已通过营业执照认证
入驻顺企:
2
主体名称:
广东湘恒智能科技有限公司
组织机构代码:
441304000246495
报价
请来电询价
PLC触摸屏代理商
西门子代理商
伺服电机驱动电缆
西门子一级代理商
变频器直流调速器
西门子一级总代理商
关键词
西门子一级总代理商,西门子总代理商,西门子变频器一级代理商,西门子PLC触摸屏代理商,西门子伺服电机电缆代理商
所在地
惠州大亚湾澳头石化大道中480号太东天地花园2栋二单元9层01号房
联系电话
13922889745
手机
18475208684
经理
向小姐  请说明来自顺企网,优惠更多
请卖家联系我
18475208684

产品详细介绍

西门子PLC点对点通信

6.5点对点通信

6.5.1串行通信概述

1.并行通信与串行通信

并行数据通信是以字节或字为单位的数据传输方式,需要多根数据线和控制线,在工业控制通信中很少使用。

串行数据通信是以二进制的位(bit)为单位的数据传输方式,每次只传送一位。串行通信Zui少只需要两根线就可以连接多台设备,组成控制网络,可用于距离较远的场合。工业控制设备与计算机之间的通信几乎都采用串行通信方式。

2.异步通信

在串行通信中,接收方和发送方应使用相同的传输速率,实际的发送速率与接收速率之间总是有一些微小的差别,如果不采取措施,在连续传送大量的信息时,将会因为积累误差造成错位,使接收方收到错误的信息。为了解决这一问题,需要使发送过程和接收过程同步。按同步方式的不同,串行通信分为异步通信和同步通信。

异步通信采用字符同步方式,其字符信息格式如图6-41所示,发送的字符由一个起始位、7个或8个数据位、1个奇偶校验位(可以没有)、1个或2个停止位组成。通信双方需要对采用的信息格式和数据的传输速率作相同的约定。接收方检测到停止位和起始位之间的下降沿后,将它作为接收的起始点,在每一位的中点接收信息。由于一个字符信息格式仅有十来位,发送方和接收方的收发频率略有不同,也不会因为两台设备之间的时钟周期差异产生的积累误差而导致信息的发送和接收错位。异步通信传送的附加的非有效信息较多,传输效率较低。随着通信速率的提高,可以满足控制系统对通信的要求,PLC一般采用异步通信。

奇偶校验用来检测接收到的数据是否出错。如果指定的是偶校验,发送方发送的每一个字符的数据位和奇偶校验位中“1”的个数为偶数。如果数据位包含偶数个“1”,奇偶校验位将为0;如果数据位包含奇数个“1”,奇偶校验位将为1。

接收方对接收到的每一个字符的奇偶性进行校验,可以检验出传送过程中的错误。有的系统组态时允许设置为不进行奇偶校验,传输时没有校验位。

在串行通信中,传输速率(又称波特率)的单位为波特,即每秒传送的二进制位数,其符号为bit/s或bps。

3,单工与双工通信方式

单工通信方式只能沿单一方向传输数据,双工通信方式的信息可以沿两个方向传送,每一个站既可以发送数据,也可以接收数据。双工方式又分为全双工方式和半双工方式。

全双工方式数据的发送和接收分别用两组不同的数据线传送,通信的双方都能在同一时刻接收和发送信息(见图6-42)。半双工方式用同一组线接收和发送数据,通信的双方在同一时刻只能发送数据或只能接收数据(见图6-43)。通信方向的切换过程需要一定的延迟时间。

4.串行通信的接口标准

(1)RS-232C

RS-232C是美国电子工业联合会1969年公布的通信标准,现在已基本上被USB取代。

RS-232C采用负逻辑,用-15~-5V表示逻辑“1”状态,用+5~+15V表示逻辑“0”状态,Zui大通信距离为15m,Zui高传输速率为20kbit/s,只能进行一对一的通信。通信距离较近时,只需要发送线、接收线和信号地线(见图6-44),便可以实现全双工通信。

RS-232C使用单端驱动、单端接收电路(见图6-45),是一种共地的传输方式,容易受到公共地线上的电位差和外部引入的干扰信号的影响。

(2)RS-422A

RS-422A采用平衡驱动、差分接收电路(见图6-46),利用两根导线之间的电位差传输信号。这两根导线称为A线和B线。当B线的电压比A线高时,一般认为传输的是数字“1”;认为传输的是数字“0”。能够有效工作的差动电压从零点几伏到接近十伏。

平衡驱动器有一个输入信号,两个输出信号互为反相信号,图中的小圆圈表示反相。两根导线相对于通信对象信号地的电位差称为共模电压,外部输入的干扰信号主要以共模方式出现。两根传输线上的共模干扰信号相同,因为接收器是差分输入,两根线上的共模干扰信号可以互相抵消。只要接收器有足够的抗共模干扰能力,就能从干扰信号中识别出驱动器输出的有用信号,从而克服外部干扰的影响。

与RS-232C相比,RS-422A的通信速率和传输距离有了很大的提高。在Zui大传输速率10Mbit/s时,允许的Zui大通信距离为12m。传输速率为100kbit/s时,Zui大通信距离为1200m,一台驱动器可以连接10台接收器。RS-422A是全双工,用4根导线传送数据(见图6-47),两对平衡差分信号线分别用于发送和接收。

(3)RS-485

RS-485是RS-422A的变形,RS-485为半双工,对外只有一对平衡差分信号线,不能发送和接收信号。使用RS-485通信接口和双绞线可以组成串行通信网络(见图6-48),构成分布式系统,总线上Zui多可以有32个站。

6.5.2点对点通信的组态与编程

1.点对点通信模块

S7-1200/1500支持使用自由口协议的点对点(Point-to-Point,PtP)通信,可以通过用户程序定义和实现选择的协议。PtP通信具有很大的自由度和灵活性,可以将信息直接发送给外部设备(例如打印机),也可以接收外部设备(例如条形码阅读器)的信息。

S7-1200的PtP通信使用CM1241通信模块和CB1241通信板。它们支持ASCII、USS驱动、ModbusRTU主站协议和ModbusRTU从站协议。CPU模块的左边Zui多可以安装3块通信模块。串行通信模块的电源由CPU提供,不需要外接的电源。

S7-1500的点对点通信模块可以在主机架或ET200MPI/O系统中使用。可以使用3964(R)、ModbusRTU(仅高性能型)或USS协议,以及基于自由口的ASCII协议。有CMPtPRS422/485基本型和高性能型、CMPtPRS232基本型和高性能型这4种模块。

ET200SP的CMPtP串行通信模块支持RS-232/RS-422/RS-485接口,以及自由口、3964(R)、Modbus RTU主/从、USS 多种协议。

可以用设备视图组态接口参数,组态的参数保存在CPU中,CPU进入STOP模式时不会丢失组态参数。也可以用指令PORT_CFG来组态通信接口,用SEND_CFG和RCV_CFG指令来分别组态发送和接收数据的属性。设置的参数仅在CPU处于RUN模式时有效。切换到STOP 模式或断电后又上电,这些参数恢复为设备组态时设置的参数。

2.组态通信模块

在STEP7中生成一个名为“点对点通信”的新项目(见随书光盘中的同名例程),PLC_I和PLC_2均为CPU1214C。打开PLC_1的设备视图,将右边的硬件目录窗口的文件夹“\通信模块\点到点”中的CM1241(RS422/485)模块拖放到CPU左边的101号槽。选中该模块后,选中下面的巡视窗口的“属性>常规〉RS422/485接口〉端口组态”(见图6-49),在右边的窗口中设置通信接口的参数。设置“操作模式”为“半双工(RS485)”。除了波特率,其他参数均采用默认值。

奇偶校验的默认值是无奇偶校验,还可以选偶校验、奇校验、Mark校验(将奇偶校验位置位为1)和Space校验(将奇偶校验位复位为0)。

选中左边窗口的“组态传送消息”和“组态所接收的消息”,可以组态发送报文和接收报文的属性,本例均采用默认的设置。

用同样的方法和参数,为PLC2组态一块RS-485模块,波特率为38.4kbit/s。

流量控制仅用于RS-232模块,它是为了不丢失数据,用来平衡数据发送和接收的一种机制。流量控制可以确保发送设备发送的信息量不会超出接收设备所能处理的信息量。

3.设计用户程序

在点对点通信中,PLC_1作主站,PLC_2作从站。通信任务如下:在起动信号M2.0为1状态时,主站发送100个字的数据,从站接收到后返回100个字的数据。以后不停地重复上述过程。

在点对点通信中,用Send_P2P指令发送报文,用Receive_P2P指令接收报文。它们的操作是异步的,用户程序使用轮询方式确定发送和接收的状态,这两条指令可以执行。通信模块发送和接收报文的缓冲区Zui大为1024B。

双击打开主站的OB1,将右边的“指令”窗口的“通信”窗格的文件夹“\通信处理器\PtPCommunication”中的Send_P2P、Receive_P2P指令拖拽到梯形图中(见图6-50)。自动生成它们的背景数据块DB3和DB4。S7-1200也可以使用文件夹“\通信处理器\点到点”中的SEND_PTP和 RCV_PTP指令。

图6-50中两条指令的输入参数PORT为通信接口的标识符(常数),可以在PLC变量表的“系统常数”选项卡中查到它,也可以在通信接口的属性对话框中找到它。BUFFER是发送缓冲区的起始地址,LENGTH是发送缓冲区的长度。

发送结束时输出位DONE为1状态。指令执行出错时,输出位ERROR为1状态,错误代码在 STATUS 中。

接收完成时Receive_P2P的输出位NDR为1状态,LENGTH中是接收到的报文的字节数。

为主站生成符号地址为BF_OUT和BF_IN的共享数据块DB1和DB2,在它们中间分别生成有100个字元素的数组“TO从站”和“FROM从站”。

在OB100中给数组“TO从站”要发送的所有元素赋初值,将保存接收到的数据的数组“FROM从站”的所有元素清零。在OB1中用周期为0.5s的时钟存储器位M0.3的上升沿,将要发送的第一个字“‘BF OUT’.TO主站[1]”的值加1。

下面是主站的轮询顺序:

1)在Send_P2P指令的REQ信号M2.0的上升沿,启动发送过程(见图6-50),发送DB1中的100个整数。在多个扫描周期内继续执行SendP2P指令,完成报文的发送。

2)SendP2P的输出位DONE(M2.1)为1状态时,表示发送完成,将M2.4置位。用M2.4作为Receive_P2P的接收使能信号EN的实参,反复执行Receive_P2P。模块接收到响应报文后,Receive_P2P指令的输出位NDR(M2.5)为1状态,表示已接收到新数据。

3)在M2.5的下降沿将M2.7置位,重新启动发送过程,返回第1步。将接收使能信号M2.4复位。在发送完成时,将M2.7复位。

从站接收和发送数据的程序见图6-51,DB1和DB2中的100个字元素的数组符号名分别为“TO主站”和“FROM主站”,其他程序与PLC1的基本上相同。

从站的轮询顺序如下:

1)在OB1中调用Receive_P2P指令,开始时它的使能信号EN为1状态。

2)从站接收到请求报文后,Receive_P2P指令的输出位NDR(M2.5)变为1状态。在M2.5的下降沿将M2.4置位,启动SendP2P指令,将DB1中的响应报文发送给主站。M2.4的常闭触点断开,Receive_P2P指令停止接收数据。

3)在响应报文发送完成时,Send_P2P的输出位DONE(M2.1)变为1状态,将M2.4复位,停止发送报文。ReceiveP2P的EN输入变为1状态,又开始准备接收主站发送的报文。

4、点对点通信的实验

硬件接线图如图6-52所示。在主站和从站的监控表中监控DB2的DBW0、DBW2和DBW198。用监控表将M2.0置为1状态后马上置为0状态,启动主站向从站发送数据。观察双方接收到的第一个字DB2.DBW0的值是否不断增大,DB2的DBW2和DBW198的值是否与对方在OB100中预置的值相同。

6.5.3Modbus RTU协议通信

1.Modbus 协议

Modbus协议是Modicon公司提出的一种报文传输协议,Modbus协议在工业控制中得到了广泛的应用,它已经成为一种通用的工业标准,许多工控产品都有Modbus通信功能。

根据传输网络类型的不同,Modbus分为串行链路上的Modbus和基于TCP/IP的Modbus。

Modbus串行链路协议是一个主-从协议,采用请求-响应方式,总线上只有一个主站,主站发送带有从站地址的请求帧,具有该地址的从站接收到后发送响应帧进行应答。从站没有收到来自主站的请求时,不会发送数据,从站之间也不会互相通信。

Modbus 串行链路协议有ASCII和RTU(远程终端单元)这两种报文传输模式,S7-1200采用RTU模式。主站在Modbus网络上没有地址,从站的地址范围为0~247,其中0为广播地址。使用通信模块CM1241(RS232)作ModbusRTU主站时,只能与一个从站通信。使用通信模块CM1241(RS485)或CM1241(RS422/485)作ModbusRTU主站时,Zui多可以与32个从站通信。

报文以字节为单位进行传输,采用循环冗余校验(CRC)进行错误检查,报文Zui长为256B。

2.组态硬件

在博途中生成一个名为“ModbusRTU通信”的项目(见随书光盘中的同名例程),生成作为主站和从站的PLC_1和PLC_2,它们的CPU均为CPU1214C。设置它们的IP地址分别为192.168.0.1和192.168.0.2,分别启用它们默认的时钟存储器字节MB0。

打开主站PLC_1的设备视图,将右边的硬件目录窗口的文件夹“\通信模块\点到点”中的CM1241(RS422/485)模块拖放到CPU左边的101号槽。选中该模块以后,选中下面的巡视窗口的“属性〉常规>RS422/485接口>端口组态”,按图6-49设置通信接口的参数。

“操作模式”为“半双工(RS485),2线制模式”。

打开从站PLC_2的设备视图,将RS422/485模块拖放到CPU左边的101号槽。该模块的组态方法与主站的RS422/485模块相同。

3.主站调用 Modbus_Comm_Load指令

必须在主站的初始化组织块OB100中,对每个通信模块调用一次Modbus_Comm_Load指令,来组态它的通信接口。执行该指令之后,就可以调用Modbus_Master或Modbus_Slave指令来进行通信了。只有在需要修改参数时,才调用该指令。

打开 OB100,再打开指令列表的“通信”窗格的文件夹“\通信处理器\MODBUS(RTU)”,将Modbus_Comm_Load指令拖拽到梯形图中(见图6-53)。自动生成它的背景数据块Modbus_Comm_Load_DB(DB4)。该指令的输入/输出参数的意义如下:

在输入参数REQ的上升沿时启动该指令,由于OB100只在S7-1200启动时执行一次,将REQ设为TRUE(1状态),电源上电时端口就被设置为ModbusRTU通信模式。

PORT 是通信端口的硬件标识符,输入该参数时两次单击地址域的

BAUD(波特率)可选300~115200 bit/s。

PARITY(奇偶校验位)为0、1、2时,分别为不使用校验、奇校验和偶校验。

FLOW_CTRL、RTS_ON_DLY 和RTS_OFF_DLY用于RS-232接口通信。

RESP_TO 是响应超时时间,采用默认值1000ms。

MB_DB是Modbus_Master或Modbus_Slave函数块的背景数据块中的静态变量。

DONE为1状态时表示指令执行完且没有出错。

ERROR 为1状态表示检测到错误,参数STATUS 中是错误代码。

生成符号地址为BF_OUT 和BF_IN的共享数据块DB1和DB2,在它们中间分别生成有10个字元素的数组,数据类型为Array[1..10] ofWord。

在OB100中给要发送的DB1中的10个字賦初值16#1111,将保存接收到的数据的DB2中的10个字清零。在OB1中用周期为0.5s的时钟存储器位M0.3的上升沿,将要发送的第一个字“’BF_OUT’.To从站[1]”的值加1。

4.主站调用Modbus_Master指令

Modbus_Master指令用于Modbus主站与指定的从站进行通信。主站可以访问一个或多个Modbus从站设备的数据。

Modbus_Master指令不是用通信中断事件来控制通信过程,用户程序必须通过轮询Modbus_Master指令来了解发送和接收的完成情况。Modbus主站调用Modbus_Master指令向从站发送请求报文后,用户必须继续执行该指令,直到接收到从站返回的响应。

在OB1 中两次调用Modbus_Master指令(见图6-54),读取1号从站中Modbus地址从40001开始的10个字中的数据,保存到主站的DB2中;将主站DB1中的10个字的数据写入从站的Modbus地址从40011开始的10个字中。

用于同一个Modbus端口的所有Modbus_Master指令,都必须使用同一个Modbus_Master背景数据块,本例为DB3。

5. Modbus_Master指令的输入、输出参数

在输入参数REQ(见图6-54)的上升沿,请求向Modbus从站发送数据。

MB_ADDR是ModbusRTU从站地址(0~247),地址0用于将消息广播到所有Modbus从站。只有Modbus功能代码05H、06H、15H和16H可用于广播方式通信。

MODE用于选择Modbus功能的类型(见表6-2)。

对于“扩展寻址”模式,根据功能所使用的数据类型,数据的Zui大长度将减小1个字节或1个字。

DATA_ADDR 用于指定要访问的从站中数据的Modbus起始地址。Modbus_Master指令根据参数 MODE 和DATA_ADDR一起来确定Modbus报文中的功能代码(见表6-2)。

DATA_LEN 用于指定要访问的数据长度(位数或字数)。

DATA PTR为数据指针,指向CPU的数据块或位存储器地址,从该位置读取数据或向其写入数据。DONE为1状态表示指令已完成请求的对Modbus从站的操作。

BUSY为1状态表示正在处理Modbus Master任务。

ERROR为1状态表示检测到错误,并且参数STATUS提供的错误代码有效。

6,从站的初始化程序

在从站的初始化组织块OB100中调用Modbus_Comm_Load指令,来组态串行通信接口的参数。其输入参数PORT的值为270,参数MB_DB的实参为"Modbus_Slave_DB".MB_DB,其他参数与图6-53的相同。

生成符号地址为BUFFER的共享数据块DB1,在它中间生成有20个字元素的数组DATA,数据类型为Array[1..20]ofWord。在OB100中给数组DATA要发送的前10个元素赋初值16#2222,将保存接收到的数据的数组DATA的后10个元素清零。在OB1中用周期为0.5s的时钟存储器位M0.3的上升沿,将要发送的第一个字"BUFFER".DATA[1]的值加1。

7.从站调用 Modbus_Slave指令

在从站的OB1中调用Modbus_Slave指令(见图6-55),它用于为Modbus主站发出的请求服务。开机时执行OB100中的Modbus_Comm_Load指令,通信接口被初始化。从站接收到ModbusRTU主站发送的请求时,通过执行Modbus_Slave指令来响应。

Modbus_Slave的输入/输出参数的意义如下:

MB_ADDR是ModbusRTU从站的地址(1~247)。

MB_HOLD_REG是指向Modbus保持寄存器数据块的指针,其实参的符号地址为“BUFFER”.DATA,该数组用来保存供主站读写的数据值。生成数据块时,不能激活“优化的块访问”属性。DB1.DBW0对应于Modbus地址40001。

NDR 为1状态表示Modbus主站已写入新数据,没有新数据。

DR为1状态表示Modbus主站已读取数据,没有读取。

ERROR为1状态表示检测到错误,参数STATUS 中的错误代码有效。

8.Modbus 通信实验

硬件接线图如图6-52所示。用监控表监控主站的DB2的DBW0、DBW2和DBW18,以及从站的DB1的DBW20、DBW22和DBW38。

用外接的小开关将请求信号I0.0置为1状态后马上置为0状态,启动主站读取从站的数据。用主站的监控表观察DB2中主站的DBW2和DBW18读取到的数值是否与从站在OB100中预置的值相同。多次发出请求信号,观察DB2.DBW0的值是否增大。

用外接的小开关将请求信号I0.1置为1状态后马上置为0状态,启动主站改写从站的数据。用从站的监控表观察DB1中改写的结果。多次发出请求信号,观察DBW20的值是否增大。

可以将1个Modbus主站和Zui多31个Modbus从站组成一个网络。它们的C1241RS422/485通信模块的通信接口用PROFIBUS电缆连接。

9.S7-1200/1500与其他S7 PLC的Modbus通信

S7-1200/1500也可以与S7-200和S7-200SMARTCPU集成的RS-485接口进行ModbusRTU通信,S7-1200的串行通信模块较为便宜。S7-1500具有ModbusRTU主/从通信功能的CMPtPRS422/485高性能型通信模块的价格,大约是ET200SP的CMPtP串行通信模块的3倍。

S7-300/400的ModbusRTU通信需要高性能的串行通信模块,例如CP341。还需要购买用于ModbusRTU通信的硬件加密狗,ModbusRTU通信的硬件成本较高。S7-300/400通过ET 200S 的串行通信模块实现ModbusRTU通信的成本低得多。



关于广东湘恒智能科技有限公司商铺首页 | 更多产品 | 联系方式 | 黄页介绍
成立日期2022年11月17日
主营产品西门子PLC,西门子模块,西门子触摸屏,西门子变频器,西门子伺服电机驱动,电缆,西门子全系列
公司简介广东湘恒智能科技有限公司主要从事工业自动化产品的集成,销售与维修。致力于为您提供在机械、化工、水泥、电力、环保等领域的电气及自动化技术的完整解决方案,包括自动化产品及系统、工程项目执行及管理、主要过程控制领域技术支持,以及专业的售后服务、培训等。公司本着“以人矢志创新、追求卓越”的工作方针,致力于工业自动化控制领域的产品开发、工程配套和系统集成、销售,拥有丰富的自动为本、科技先导、化产品的应用和实 ...
公司新闻
顺企网 | 公司 | 黄页 | 产品 | 采购 | 资讯 | 免费注册 轻松建站
免责声明:本站信息由广东湘恒智能科技有限公司自行发布,交易请核实资质,谨防诈骗,如有侵权请联系我们   法律声明  联系顺企网
© 11467.com 顺企网 版权所有
ICP备案: 粤B2-20160116 / 粤ICP备12079258号 / 粤公网安备 44030702000007号 / 互联网药品信息许可证:(粤)—经营性—2023—0112