S7-1200 西门子 6ES7393-4AA00-0AA0 现货特价销售
串口通信硬件选型
在SIMATIC S7系列产品中包括多种不同等级、不同功能、适合不同应用场合的串行通信模块。
CP340/341/440/441 模块特性对照
S7-300/400 PLC 主要的串行通信模块及模块特性,如图 1 所示。
图1 S7-300/400 串行通信模块列表
注意:对于Modbus通讯协议方式,每个通讯模块都需要配置一个Modbus主站或从站硬件狗(Dongle)。
下图列出了目前最新产品的订货信息,仅供参考,订货时请以相关产品手册或供货商提供信息为准,如图 2 所示。
串口接线
S7-300/400 支持的串口模块集成接口和接口子模块常用有 RS232C 和 RS422/485 两种。
RS232C 接口
RS422/485 接口
接线及拓扑常见问题
RS232C 接口
1.接口定义
CP340/341集成 RS 232C 口和 RS 232C 接口子模块的前面板上 9 针 Sub-D 型公连接器的针脚分配,如图 1 所示。
图1 RS232C 9 针 Sub-D 型针头公连接器的针脚图
2.电缆连接
RS232C电缆连接:9针对9针连接示意图,如图 2 所示。
图2 RS232C电缆连接 9针对9针
常用的是三线制接法,如图 3 所示。
图3 RS232C 常用三线制
RS422/485 接口
1.接口定义
CP340/341/440 集成 RS422/485 口和 RS422/485 接口子模块的前面板上 15 针 Sub-D 型孔头连接器的针脚分配,如图 4 所示。
图4 RS422/485 接口 15 针 Sub-D 型孔头连接器的针脚图
2.电缆连接
RS422 接口电缆连接,如图 5 所示。
图5 RS422接口电缆连接图
RS485 接口电缆连接,如图 6 所示。
图6 RS485接口电缆连接图
注意:1)如果电缆长度超过50米,则必须在接收方上焊接一个约 330 ohm的终端电阻,以确保数据传输畅通无阻。
接线及拓扑常见问题
RS422/485接口,按照 RS485 方式接线,是否需要外部短接2和4,9和11?
组态选择成 RS485 方式,内部已经短接2和4,9和11,不需要外部短接线,直接接4-,11+即可。
RS422/485 接口的 15针的Sub-D 型头是孔,还是针?
是孔,即母头。
西门子是否用于RS485接口(15针)的通讯电缆?
无此种电缆,需要客户自行购买15针D型头,自己焊接4和11,按照图4连接。
RS485方式通讯,一对多站点时,应采用那种网络拓扑结构?
网络拓扑一般采用终端匹配的总线型结构,不支持星型或树形。
RS485方式做Modbus RTU主站,可以带多少个从站?
理论上一个网段可以带31个从站,如果超出31个,可以考虑增加RS485中继器(西门子无适用于串口通信的中继器,需选购第三方设备),加一个中继器可以再增加31个从站。
但是实际上由于串口通信是一个一个站点的轮询操作,站点增加即轮询一周的时间也会增大。
因此需要考虑工艺上需求是否能够满足。
通常来说,对于各站点的只读操作(仅用于数据监测),对时间要求较低的工艺,站点数量可以适量增加。
而对于写操作,或读写操作的多站点通信,不推荐使用串口通信,建议采用Profibus总线或Profinet总线通信。
CP341的RS422/485模块,按照 RS485 方式通讯,实际未接外部线缆,仅硬件组态下载,模块的SF灯亮?
检查参数是否配置;硬件组态中的接口选项是否改成RS485(默认的是RS422,会断线检测,未接线报故障),如图 7 所示;模块是否故障。
图7 CP341 参数中接口设置
怎么构建一个RS422/485的Modbus 主站带从站多点网络?
多点网络接线图如下:
图8 RS422多点接线图
图9 RS485多点接线图
硬件及软件列表
设备名称 | 设备型号 |
PS 307 | 6ES7 307-1EA00-0AA0 |
CPU 315-2DP | 6ES7 315-2AG10-0AB0 |
MMC | 6ES7 953-8LG11-0AA0 |
CP341 | 6ES7 341-1AH01-0AE0 |
Dongle | 6ES7 870-1AA01-0YA0 |
将Dongle插入CP341中,Dongle和插入Dongle前后的CP341如下图所示。
图1
注意:STEP7 V5.X软件上,必须安装如下软件包才可进行后续的组态配置。
PTP协议软件包:SIMATIC S7-CP PtP bbbbb V5.1+SP14
MODBUS主站驱动
MODBUS从站驱动
组态和配置
1、打开上面创建的项目ptp,用鼠标右键点击项目名称,选择Insert New bbbbbb-> SIMATIC 300 Station,更改站的名称为CP341 Modbus-M。
图2
2、双击Hardware进入硬件配置画面,插入RACK、CPU315-2DP、CP341。
图3
3、 双击CP341模板,点击Parameter...,配置CP341参数。在Protocol选项中选择MODBUS Master。
图4
4、双击Protocol下的信封图标,配置Modbus Master参数,点击Modbus-Master按钮,设置通讯波特率等参数。
图5
5、配置完成后保存时会提示是否装载驱动。
图6
6、此时必须连接到实际的PLC,点击Yes按钮装载驱动,或点击Load Drivers装载,装载时CPU必须为STOP模式。
图7
7、装载完成后,如果再次装载,Step7会提示Driver already exists。配置完成后点击下载按钮保存编译硬件组态,并确认没有错误。
图8
编写通信程序
1、双击OB1,打开OB1编程画面,从库Libraries->CP PtP->CP341中调用发送程序块FB8 P_SND_RK,分配背景数据块DB8,将参数LADDR设为硬件组态中的输入起始逻辑地址256。
图9
2、创建发送数据块DB1,从站地址为2,功能码为3,起始地址为0,读4个寄存器数据,具体功能码3 的使用参见Modbus Master手册 5.3 Function Code 03 - Read Output Registers部分的说明。
图10
3、调用发送功能块,设置参数。
图11
FB8 P_SND_RK的参数设置见下表:
SF | ‘S’为发送,此处必须为大写的‘S’ |
LADDR | 硬件组态中的起始逻辑地址,本例中为256 |
REQ | 发送数据触发位,上升沿触发,本例中为M0.0 |
DB_NO | 发送数据块号,本例中为1(DB1) |
DBB_NO | 发送数据的起始地址,本例中为0(DB1.DBB0) |
LEN | 发送数据的长度,本例中为6 |
R_TYP | ‘X’为扩展的数据块,此处必须为大写的‘X’ |
R | 取消通讯,本例中不用 |
DONE | 发送完成位,发送完成后为TRUE,同时没有错误 |
ERROR | 错误位,为TRUE说明有错误 |
STATUS | 状态字,标识错误代码,查看Modbus Master手册第7章获得相应的说明 |
其它参数 | 本例中不用 |
4、从库中Libraries->CP PtP->CP341调用接收程序块FB7 P_RCV_RK,分配背景数据块DB7,将LADDR设为硬件组态中的输入起始逻辑地址256。
图12
5、创建接收数据块DB2。
图13
6、调用接收功能块,设置参数。
图14
FB7 P_RCV_RK的参数设置见下表:
LADDR | 硬件组态中的起始逻辑地址,本例中为256 |
DB_NO | 发送数据块号,本例中为2(DB2) |
DBB_NO | 发送数据的起始地址,本例中为0(DB2.DBB0) |
LEN | 接收数据的长度,本例中为MW4,只有在接收到数据的当前周期,此值不为0,可以查看MW8的值来确认接收到数据的长度 |
EN_R | 使能接收位,本例中为M0.3 |
R | 取消通讯,本例中不用 |
NDR | 接收完成位,接收完成后为TRUE,同时没有错误 |
ERROR | 错误位,为TRUE说明有错误 |
STATUS | 状态字,标识错误代码,查看Modbus Master手册第7章获得相应的说明 |
其它参数 | 本例中不用 |
设备连接
本文档使用的CP341的接口是RS232C,因此需要通过标准的RS232C电缆来连接CP341和计算机的串口.
具体的电缆连接方法请查看:串口接线
如果使用的CP341是RS485接口的模块,需要使用RS232C/RS485转换器(需要选购第三方设备)。
通信测试
前面使用Step7 V5.5软件已经将通信CP341的通信工作做完,下面进行通信测试。这里使用串口通讯测试软件modbus slave软件来测试CP341和计算机的通信,步骤如下
1、安装Modbus Slave测试软件,安装完成后,在桌面上生成一图标,双击此图标,打开modbus slave测试软件,如图。
图15
2、点击Register later按钮,不注册此软件,可以使用30天,但每次只能使用15分钟,网上下载的软件,没有注册码。然后点击菜单Connection->connect配置串口参数,要和CP341的参数相同。
图16
3、点击OK按钮,然后选择菜单Setup->Slave Definition...设定通讯数据,因为CP341使用的是功能码3,所以选择03 Holding Register,CP341访问的从站地址为2,Slave ID设为2,起始地址从1开始,画面如下。
图17
4、然后设置地址1到4 的数据分别为111 到444,然后在Step7变量表中设置M0.3为TRUE,使能接收,然后将M0.0置成 TRUE(上升沿触发,想再发送需要将M0.0从TRUE置成FALSE,然后再置成TRUE),可以监控到DB1.DBW0到DB1.DBW4的值为111 到444,如下图。
图18
5、如果想读取浮点数,必须设置数据格式,点击菜单Display->Float Inverse。
图19
6、设置地址1和3的值分别为1.234 和5.678,触发M0.0发送,可以看到接收到的数据为1.234 和5.678,如下图。
图20
硬件列表
设备名称 | 设备型号 |
PS 307 | 6ES7 307-1EA01-0AA0 |
CPU 319-3PN/ DP | 6ES7 318-3EL00-0AB0 |
MMC | 6ES7 953-8LG30-0AA0 |
CP341 | 6ES7 341-1CH02-0AE0 |
Dongle | 6ES7 870-1AB01-0YA0 |
应用CP341进行 MODBUS协议通信时需要有Dongle的支持。在使用之前先将Dongle安装在CP341模块的背面的Dongle插槽中,Dongle和插入Dongle前后的CP341如下图所示。
图1
组态和配置
1、打开软件TIA PORTAL
图2
STEP7 V13,点击项目->新建...创建一新项目,项目名称为341_modbus_Master。
2、用鼠标点击“添加新设备”,选择SIMATIC S7-300->CPU->CPU 319-3PN/DP->6ES7 318-3EL00-0AB0。
图3
3、双击“设备组态”进入硬件组态界面,导轨RACK和CPU 319-3PN/DP已经存在,只需要插入PS307和CP341。
图4
4、双击CP341模板,进入CP341的属性框,配置CP341参数。
图5
5、在“协议”选项中选择“Modbus主站”。配置modbus通信参数,设定的通信参数要和通讯伙伴的相同。传输率(通信波特率):9600bps,数据位:8位,停止位:1位,奇偶校验:无。
图6
6、本示例选用的是RS422/485接口的CP341,还需要设置接口属性,如下图所示。
图7
编写通信程序
1、双击“添加新块”,创建发送数据块DB10和接收数据块DB11,发送数据块的名称为Send,接收数据块的名称为Rev;如下图所示,发送数据块中新建几个变量,从站地址为2,功能码为3,起始地址为0,读4个寄存器数据,具体功能码3 的使用参见手册“S7串行通信模板Modbus RTU主站可装载驱动的操作说明” 6.3章节的说明;如下图所示,接受数据块中新建1个数据类型Array的变量,数组元素的数据类型为Byte,数量为400。
图8
图9
2、进入主程序OB1,从通信->通信处理器->PtP链接:CP341,调用发送功能块P_SND_RK和接收功能块P_RCV_RK。P_SND_RK的背景数据块为DB1,P_RCV_RK的背景数据块为DB2。
图10
CP341的发送功能块P_SND_RK 的参数设置见下表。
管脚 | 解释描述 |
SF | ‘S’为发送,此处必须为大写的‘S’ |
LADDR | 硬件组态中的起始逻辑地址,本例中为256,见图11。 |
REQ | 发送数据触发位,上升沿触发,本例中为M0.5,为时钟存储器的位,见图12。 |
DB_NO | 发送数据块号,本例中为10(DB10) |
DBB_NO | 发送数据的起始地址,本例中为0(DB10.DBB0) |
LEN | 发送数据的长度,本例中为6 |
R_TYP | ‘X’为扩展的数据块,此处必须为大写的‘X’ |
R | 取消通讯,本例中不用 |
DONE | 发送完成位,发送完成后为TRUE,同时没有错误 |
ERROR | 错误位,为TRUE说明有错误 |
STATUS | 状态字,标识错误代码,查看Modbus Master手册获得相应的说明 |
其它参数 | 本例中不用 |
CP341的接收功能块P_RCV_RK 的参数设置见下表。
管脚 | 解释描述 |
LADDR | 硬件组态中的起始逻辑地址,本例中为256,见图11。 |
DB_NO | 发送数据块号,本例中为11(DB11)。 |
DBB_NO | 发送数据的起始地址,本例中为0(DB11.DBB0)。 |
LEN | 接收数据的长度,本例中为MW22,只显示一个扫描周期,即:只有在接收到数据的当前周期,此值不为0。 |
EN_R | 使能接收位,本例中为M20.0,常闭点, 始终保持接收状态。 |
R | 取消通讯,本例中不用。 |
NDR | 接收完成位,接收完成并没有错误为TRUE,只显示一个扫描周期。 |
ERROR | 错误位,为TRUE说明有错误,只显示一个扫描周期。 |
STATUS | 状态字,标识错误代码,只显示一个扫描周期,查看Modbus Master手册获得相应的说明。 |
其它参数 | 本例中不用 |
图11
图12
设备连接
本文档使用的CP341的接口是RS232C,因此需要通过标准的RS232C电缆来连接CP341和计算机的串口.
具体的电缆连接方法请查看:串口接线
如果使用的CP341是RS485接口的模块,需要使用RS232C/RS485转换器(需要选购第三方设备)。
通信测试
前面使用 TIA Step7 软件已经将通信CP341的通信工作做完,下面进行通信测试。这里使用串口通讯测试软件ModSim32软件来测试CP341和计算机的通信,步骤如下
1、双击ModSim32软件图标,新建项目,点击Port1,进入端口1做设置,本例计算机只有一个端口,所以就对端口1做设置,如果计算机有多个端口,要注意所选端口。
图13
2、进入Port1设置界面,设置波特率、数据位、奇偶校验等参数,要和CP341的参数相同。
图14
3、点击“OK”,选择软件的03功能码界面,本例设置03功能码的10个数据,其中前4个数据分别设置成1—4。
图15
4、首先将硬件配置和程序下载到CPU319-3PN/DP中,时钟脉冲信号M0.5从0跳变成1时,CP341将数据发送出去。
图16
5、M20.0为常闭点,程序下载完成,CPU运行后,就始终处于接收状态。在STEP7中打开接收数据块DB11监控接收到的数据,可以看到发送的数据被正确的接收。
图17
S7-1200 西门子 6ES7393-4AA00-0AA0