- 非IC关键词
企业档案
- 相关证件: 
- 会员类型:普通会员
- 地址:湖南省长沙市天心区暮云街道高云村长沙理工大学职工小区
- E-mail:fangyujiao520@foxmail.com
产品分类
相关产品
产品信息
上海哪里卖西门子S7-300模块
【信誉、诚信交易】【长期销售、安全稳定】
【称心满意、服务动力】【真诚面对、沟通无限】
【服务、一诺千金】【质量承诺、客户满意】
【产品规格】:全新原装
【产品质量】:质保保证
【产品价格】:价格优势
【产品货期】:现货销售
1. 概述
串口模块ET200S 1SI(订货号:6ES7 138-4DF01-0AB0)是一款用于ET200S上的串口模块,支持两种软件协议(ASCII和3964(R)),通过接线区分可支持三种硬件接口(RS232C、RS422和RS485)。
在Step 7硬件组态中选择模块时,硬件目录中有以下六种版本的模块:
? ASCII (4B)
? ASCII(8B)
? ASCII(32B)
? 3964(R) (4B)
? 3964(R) (8B)
? 3964(R) (32B)
4/8/32字节代表数据传输的吞吐率大小,字节数越大,吞吐率越大,即数据传输越快,但是在ET200S机架上占用的I/O存储区也越多,如果从传输速率考虑,选择32B快,如果从占用的I/O区小考虑,选择4B占用少,根据具体应用要求选择。
模块信息及指示灯含义,如下图1所示。
图1 模块指示灯含义
RS232C、RS422和RS485三种接口通讯的终端模块端子分配和电缆连接,如下图2/3/4所示。
图2-1 RS232C接口终端模块端子分配
图2-2 RS232C接口终端模块电缆连接
图3-1 RS422接口终端模块端子分配
图3-2 RS422接口终端模块电缆连接
图4-1 RS485接口终端模块端子分配
图4-2 RS485接口终端模块电缆连接
注意:RS485接口内部已经短接,不需要外部短接处理,只要直接连接1,2,8。
2. 软件环境
2.1 STEP7 V5.4 SP5
用于编写S7-300/400程序,此软件需要从西门子购买,本文档中的部分代码使用Step7 V5.4 SP5的软件编写。
2.2 ET200S 1SI 串行接口模块的功能块
STEP 7 软件中不包含ET200s 1SI模块做串口通讯的功能块,需要单独安装一个软件,然后在Libraries下才有ET200sSI的库,功能块可供通讯调用,该软件从以下的链接。25358470
2.3 串口调试器
第三方提供的串口调试工具,可以从互联网上,可用于测试串口通讯。
3. 硬件列表和接线
3.1 硬件列表 CPU CPU317-2PN/DP 6ES7 317-2EK14-0AB0 ET200S 接口模块 6ES7 151-1BA01-0AB0 功率模块 6ES7 138-4CA00-0AA0 1 SI串口模块 6ES7 138-4DF01-0AB0 功率模块的终端模块 TM-P15S23-A0 6ES7 193-4CD20-0AA0 电子模块的终端模块 TM-E15C24-01 6ES7 193-4CA30-0AA0 表1 硬件设备
3.2 硬件接线示意图
以RS232C的方式接线为例说明,1 Si 模块按照RS232C的接线方式连接到电脑的232口,连接示意图如下所示。
图5 硬件结构和接线示意图
4.组态设置和编程
4.1 组态和配置
1.打开STEP7,点击File->New...创建一新项目,项目名称为et200s ASCII。
图6新建项目对话框
2.用鼠标右键点击项目名称,选择Insert New Object->SIMATIC 300 Station,更改站的名称为 317-2PN/DP ,如下图7所示。
图7 插入S7-300站
3. 在硬件组态中按订货号和硬件安装次序依次插入机架、CPU和ET200S标准从站模块,如下图8所示,注意所选串行接口模块为32字节的1SI ASCII (这里仅考虑数据传输的吞吐率,不考虑占用的I/O存储区的大小)。
图8组态硬件
4.双击1 SI ASCII 模块,点击Parameter选项,配置串口通信 参数。
图9 参数分配
本例中,“Interface”设为RS232C接口,勾选断线诊断,流量控制:无。通信波特率:9.6kb/s,数据位:8位,停止位:1位,奇偶效验:无,字符延迟时间:4ms,其他的参数都采用默认设置。注意:设定的参数要和通讯伙伴的相 同。
部分参数说明:
1.接口的选择
图10 接口设置
三种接口中:RS232C和RS422接口可以选择“断线检测”和“数据流量控制” 的功能, RS485/422可以设置“接收线路的初始化状态”。
2.字符桢的格式:支持10位和11位的字符桢格式,包括数据传输的波特率,数据位,停止位和奇偶校验位。
3.接收字符桢结束判断条件
图11 结束判断条件
On expiration of character delay time: 以固定的字符延迟时间为每帧数据的结束方式;
On receipt of end-of-text character: 以结束字符作为每帧数据的结束方式;
On receipt of fixed number of characters: 以固定的字符长度作为每帧数据的结束方式。
4.缓冲区处理方式
图12 缓冲区设置
Dynamic Message frame buffer:如果勾上,模块就可以缓冲多个不同长度的消息;
Prevent message frame buffer overwrite:如果勾上,防止接收到的新消息覆盖缓冲区中的消息桢,这可以防止丢失以前接收到的消息桢;
Delete receive buffer during CPU startup:如果勾上,当CPU的工作模式从STOP切换到RUN(CPU启动)时,模块的接收缓冲区自动清空。
更多关于串口接口模块的组态和参数设置,请参考手册《ET 200S 串行接口模块》第2.9章节的内容,手册链接:9260793
4.2 编程
4.2.1 PLC侧编程
1.程序调用:从库Libraries -> ET200s SI -> ET200S Serial Interface -> ET200s SI中调用功能块,调用发送 FB3(S_SEND)和接收 FB2(S_RCV),并为其分配背景数据块分别为DB30和DB20,将块参数LADDR设为硬件组态中1 SI模块的起始逻辑地址256。
图13 ET200S串口模块的逻辑地址
2.创建发送数据块DB1和接收数据块DB2
图14发送/接收数据块DB1/DB2
3.调用发送功能块
ET200S 1SI 的发送功能块FB3 S_SEND 的参数设置见下表2。 LADDR 硬件组态中串口模块的起始逻辑地址,本例中为256 DB_NO 发送数据块号,本例中为1(DB1) DBB_NO 发送数据的起始地址,本例中为0(从DB1.DBB0开始) LEN 发送数据的长度,本例中为10 REQ 发送数据触发位,上升沿触发,本例中为M0.0 R 取消通讯,本例中不用 COM_RST 如果为1 ,重新启动FB,本例中为M0.2 DONE 发送完成位,发送完成且没有错误时为TRUE, ERROR 错误位,为TRUE说明有错误 STATUS 状态字,标识错误代码,察看ET200S串行接口模块手册获得相应的说明 表2 FB3 S_SEND 的参数定义
上海哪里卖西门子S7-300模块
图15 在程序中调用FB3 S_SEND
4.调用接收功能块
ET200S 1SI的接收功能块FB2 S_RCV的参数设置见下表3。 LADDR 硬件组态中串口模块的起始逻辑地址,本例中为256 DB_NO 接收数据块号,本例中为2(DB2) DBB_NO 接收数据的起始地址,本例中为0(DB2.DBB0) LEN 接收数据的长度,本例中为MW4,只有在接收到数据的当前周期,此值不为0 ,需要编程读出 EN_R 使能接收位,本例中为M0.2 R 取消通讯,本例中不用 COM_RST 如果为1 ,重新启动FB,本例中为M0.2 NDR 接收完成位,接收完成并没有错误时为TRUE ERROR 错误位,为TRUE时说明有错误 STATUS 状态字,标识错误代码,查看ET200S串行接口模块手册获得相应的说明 表3 FB2 S_RCV的参数定义
图16 在程序中调用FB2 S_RCV
4.2.2 PC机参数设置
参数分配:串口选择COM1(默认),传输波特率为9.6Kb/s, 8位数据位,无校验,1位停止位,这些参数要和ET200s中1SI ASCII模块设置一致,同时将串口调试软件打开。
图17 串口调试软件参数设置
4.3 通讯测试
1.ET200S 1SI发送数据,调试软件接收数据
首先将硬件配置和程载到PLC,将DB1中前10个字节设为十六进制的01 02 03 04 05 06 07 08 09 10 ,然后将FB3的M0.0从FALSE置成TRUE,ET200S将发送数据10个字节数据,可以从串口调试软件的接收字符窗口中看到收到的数据(十六进制),结果如下图18所示。
图18 ET200S 1SI发送数据调试软件接收数据测试结果
2.调试软件发送数据,ET200S 1 SI接收数据
首先将硬件配置和程序到CPU中,将FB2的M0.1设为TRUE,使能ET200S 接收。在PC机的串口软件打开,在发送字符输入窗口输入16进制数据1122334455667788 9900,然后点击“手动发送”按钮发送数据,则在PLC侧DB2的前10个字节能接收到数据,接收的长度为10,测试结果如下。
图19调试软件发送数据ET200S 1SI接收数据测试结果
问题1:S7-200 CPU内部存储区类型?
回答:S7-200 CPU内部存储区分为易失性的RAM存储区和保持的EEPROM两种,其中RAM包含CPU工作存储区和数据区域中的V数据存储区、M数据存储区、T(定时器)区和C(计数器)区,EEPROM包含程序存储区、V数据存储区的全部和M数据存储区的前14个字节。
也就是说V区和MB0-MB13这些区域都有对应的EEPROM保持区域。
EEPROM的写操作次数是有限制的(少10万次,典型值为100万次),所以请注意只在必要时才进行保存操作。否则,EEPROM可能会失效,从而引起CPU故障。
EEPROM的写入次数如果超过限制之后,该CPU即不能使用了,需要整体更换CPU,不能够只更换CPU内EEPROM,西门子不提供这项服务。
问题2:S7-200 CPU的存储卡的作用?
回答:S7-200还提供三种类型的存储卡用于存储程序,数据块,系统块,数据记录(归档)、配方数据,以及一些其他文件等,这些存储卡不能用于实时存储数据,只能通过PLC—存储卡编程的方法将程序块/数据块/系统块的初始设置存于存储卡内。
存储卡分为两种,根据大小共有三个型号。
32K存储卡:仅用于储存和传递程序、数据块和强制值。32K存储卡只可以用于向新版(23版)CPU传递程序,新版CPU不能向32K存储卡中写入任何数据。而且32K存储卡不支持存储程序以外的其他功能。订货号:6ES7 291-8GE20-0XA0。
64K/256K存储卡:可用于新版CPU(23版)保存程序、数据块和强制值、配方、数据记录和其他文件(如项目文件、图片等)。64K/256K新存储卡只能用于新版CPU(23版)。64K存储卡订货号: 6ES7 291-8GF23-0XA0;256K存储卡订货号:6ES7 291-8GH23-0XA0。
为了把存储卡中的程序送到CPU中,必须先插入存储卡,然后给CPU上电,程序和数据将自动复制到RAM及EEPROM中。
存储卡的使用完整限制条件,请参考《S7-200系统手册》附录A 技术规范—可选卡件一节。
S7-200的外部存储卡有哪些功能?
459464
问题3:S7-200 CPU内的程序是否具有掉电保持特性?
回答:S7-200 CPU内的程序块时,会同时到EEPROM中,也就是说程序后,将保持。同样,系统块和数据块时,也会同时到EEPROM中。
问题4:S7-200 CPU内部的数据的掉电保持特性?
回答:S7-200系统手册第四章——“PLC基本概念”一章中“理解S7--200如何保存和存储数据”一节详细介绍了S7-200 CPU内数据的掉电保持特性,建议用户仔细阅读。
S7-200 CPU内的数据分为RAM区和EEPROM区。
其中,RAM区数据需要CPU内置的超级电容或者外插电池卡才能实现掉电保持特性。
对于CPU221和CPU222的内置超级电容,能提供典型值约50小时的数据保持。
对于CPU224,CPU224XP,CPU224XPsi和CPU226的内置超级电容,能提供典型值约100小时的数据保持。
超级电容需要在CPU上电时充电。为达到上述指标的数据保持时间,需要连续充电至少24小时。
当该时间不够时,可以购买电池卡,以获得更长时间的数据保持时间。
EEPROM区能实现数据保持,不依靠超级电容或者电池就可以保持数据。
问题5:S7-200 CPU内部数据的工作顺序?
回答:S7-200 CPU一上电后,CPU先去检查RAM区域中的数据,如果在超级电容或者电池有电的情况下,数据并未丢失,则使用该RAM区的数据;如果超级电容或者电池没电了,导致数据丢失,则CPU去读EEPROM中相应的区域(包含数据块中的数据定义内容),如果在EEPROM中存有保持的数据,则CPU将EEPROM中的数据写回到RAM区中,再进行下面的工作。
如果EEPROM中也没有对应存储区的数据了,则该存储区的数据将变成0。
问题6:S7-200 CPU电池卡的使用注意事项?
回答:新版S7-200 CPU电池卡有两种型号。
对于CPU221和CPU222,由于其中没有实时时钟,则对应的为时钟电池卡,订货号为:6ES7297--1AA23--0XA0。
对于CPU224,CPU224XP,CPU224XPsi和CPU226,电池卡仅提供电池功能,订货号为:6ES7 291--8BA20--0XA0,该款电池卡型号又叫做BC293。
电池卡的寿命典型值约为200天,当插上电池卡后,如果CPU处于工作状态或者超级电容有电的情况下,并不消耗电池卡的电量。当电池卡的电量消耗完毕之后,该电池卡就报废了。
S7-200电池卡不能充电,使用完毕就不能再用了,只能购买新的电池卡了。
S7-200没有检测电池卡内剩余电量的状态位和这种功能。
新版S7-200 CPU电池卡不能用于老CPU,即订货号为6ES7xxx-xxx21-0XB0和6ES7xxx-xxx22-0XB0以及更老版本的CPU。
图1
以上为两种电池卡以及所在插槽位置。
电池卡的使用完整限制条件,请参考《S7-200系统手册》附录A 技术规范—可选卡件一节。
问题7:S7-200 CPU内EEPROM的使用方法?
回答:EEPROM的写入分为如下几种情况:
1、MB0—MB13的设置,只需要在系统块—断电数据保持中设置即可。
默认情况下,系统块设置如下图蓝框中所示,即MB14—MB31,这些区域没有对应的EEPROM区域,无须考虑EEPROM写入次数限制。
图2
MB0—MB13如果在系统块中设置成掉电保持区域,如图2红框中所示,并将系统块到CPU之后,则这14个字节的数据在掉电的瞬间会将数值写入EEPROM中,如果掉电时间超过超级电容和电池的保持时间之后,再上电时,CPU会将EEPROM中存储的数据数值写回到RAM中对应的存储区,实现保持数据的目的。
注意:实现该功能一定要将修改过的系统块到CPU中。
2、数据块中定义的数据,如图3所示,当数据块的时候,同时会将定义的数据到EEPROM中,这样,当掉电时间超过超级电容和电池的保持时间之后,再上电时,CPU会将EEPROM中存储的数据块中定义的数据数值写回到RAM中对应的存储区,实现保持数据的目的。也就是恢复成数据的初始设置值。
注意:实现该功能一定要将定义好数据的数据块到CPU中。
图3
3、使用SMB31和SMW32控制字来实现将V区的数据存到EEPROM中
特殊存储器字节31 (SMB31)命令S7-200将V存储区中的某个值复制到存储器的V存储区,置位SM31.7提供了初始化存储操作的命令。特殊存储器字32 (SMW32)中存储所要复制数据的地址。如图4为S7-200系统手册内关于SMB31和SMW32的使用说明。
图4
采用下列步骤来保存或者写入V存储区中的一个特定数值:
1. 将要保存的V存储器的地址装载到SMW32中。
2. 将数据长度装载入SM31.0和SM31.1。具体含义如图4所示。
3. 将SM31.7置为1。
图5
注意:如果在数据块中定义了某地址的数据,而又使用这种办法存储同样地址的数据,则当CPU内超级电容或电池没电时,CPU再上电时将采用SMB31和SMW32存储的数据。
问题8:EEPROM写入次数的统计?
回答:每次程序块/数据块/系统块或者执行SMB31.7置位的操作都算作对EEPROM的写操作,所以请注意在程序中一定不要每周期都调用SMB31/SMW32用于将数据写入EEPROM内,否则CPU将很快报废。
问题9:不使用数据块的方法,如何在程序中实现不止一个V区数据的存储?
回答:由于SMB31/SMW32多只能送入一个V区双字给EEPROM区域,因而当有超过一个双字的数据需要送入EEPROM中时,需要程序配合实现。具体操作方法可参照如下的例子,即使用SMB31/SMW32送完一个数据(字节/字/双字)之后,通过一个标志位(如M0.0)来触发下一个SMB31/SMW32操作,之后需要将上一个标志位清零,以用于下的存储数据的操作。
由于SM31.7在每次操作结束之后都自动复位,因而不能使用它作为第二次触发操作的条件。
以上程序仅供参考。
或者可以参考如下FAQ,多次调用指令库用以存储多个V区变量到EEPROM存储区中:
如何在 CPU 内部 EEPROM 存储空间中保存变量区域?
17471561
问题10:定时器和计数器以及MB14-MB31的掉电保持性能?
回答:计数器和TONR型的定时器(T0-T31,T64-T95)能够实现掉电保持。这些区域只能由超级电容和电池来进行数据的掉电保持,他们并没有对应的EEPROM保持存储区。当超过超级电容和电池供电的时间之后,这些计数器和TONR定时器的数据全部清零。
TON和TOF型的定时器(T32-T63,T96-T255)没有掉电保持数据的功能。请不要在系统块中设置这些区域为掉电保持,如图6所示为错误做法:
图6
按上述做法设置之后,系统块时会导致如下错误发生:
图7
所以请不要将T32-T63,T96-T255的定时器设为掉电保持区域。
问题11:CPU内具备断电保持性的数据区为何会丢失?
以下情况会导致CPU内数据清零:
1. 没有插入电池卡的CPU断电时间过长,内部超级电容放电完毕,TONR区/C区/MB14-MB31区数据丢失,V区和MB0-MB13区的对应EEPROM内没有数据导致数据丢失,
2. 电池卡使用时间过长,使之没电了, TONR区/C区/MB14-MB31区数据丢失,V区和MB0-MB13区的对应EEPROM内没有数据导致数据丢失,
3. 插在CPU上的存储卡内程序/数据与CPU内部RAM中运行的程序/数据不符,一上电时会导致原有数据/程序的丢失。
4. CPU损坏。