1、西门子 S7-200 PLC
1.为什么要用PC/PPI接口? 因S7-200CPU使用的是RS485,而PC机的COM口采用的是RS232,两者的电气规范并不相容,需要用中间电路进行匹配。PC/PPI其实就是一根RS485/RS232的匹配电缆。
2.晶体管输出与继电器输出各自的优点如何? 晶体管不能带AC220V的交流负载,只能带低压的直流。对抗过载和过压的能力差。但可以高频输出,适合高频率输出的场合,例如脉冲控制。 继电器可以带AC220V和直流的负载。但由于继电器本身的特性决定了它不能高频输出。同时继电器通断的寿命一般在10万次左右。所以在频繁通断的场合也适合用晶体管的。
3.S7-200 CPU上的通讯口,通讯距离究竟有多远? 《S7-200系统手册》上给出的数据是一个网段50m,这是在符合规范的网络条件下,能够保证的通讯距离。凡超出50m的距离,应当加中继器。加一个中继器可以延长通讯网络50米。如果加一对中继器,并且它们之间没有S7-200 CPU站存在(可以有EM277),则中继器之间的距离可以达到1000米。符合上述要求就可以做到非常可靠的通讯。
4.通讯口参数如何设置? 缺省情况下,S7-200 CPU的通讯口处于PPI从站模式,地址为2,通讯速率为9.6K,要更改通讯口的地址或通讯速率,必须在系统块中的通讯端口选项卡中设置,然后将系统块下载到CPU中,新的设置才能起作用。
5.M区域地址不够用怎么办? 有些用户习惯使用M 区作为中间地址,但S7-200CPU中M区地址空间很小,只有32个字节,往往不够用。而S7-200CPU中提供了大量的V 区存储空间,即用户数据空间。V存储区相对很大,其用法与M 区相似,可以按位、字节、字或双字来存取V 区数据。例:V10.1, VB20, VW100, VD200等等。
6.S7-200的远距离通讯有哪些方式?
RS-485网络通讯:PPI、MPI、PROFIBUS-DP协议都可以在RS-485网络上通讯,通过加中继,最远可以达到9600米。
光纤通讯:光纤通讯除了抗干扰、速率高之外,通讯距离远也是一大优点。S7-200产品不直接支持光纤通讯,需要附加光纤转换模块才可以。
电话网:S7-200通过EM241音频调制解调器模块支持电话网通讯。EM241要求通讯的末端为标准的音频电话线,而不论局间的通信方式。通过EM241可以进行全球通讯。
无线通讯:S7-200通过无线电台的通讯距离取决于电台的频率、功率、天线等因素;S7-200通过GSM网络的通讯距离取决于网络服务的范围 ;S7-200通过红外设备的通讯也取决于它们的规格。
7.S7-200支持的通讯协议哪些是公开的,哪些是不公开的?
PPI协议:西门子内部协议,不公开;
MPI协议:西门子内部协议,不公开;
S7协议:西门子内部协议,不公开;
PROFIBUS-DP协议:标准协议,公开 ;
USS协议:西门子传动装置的通用串行通讯协议,公开详情请参考相应传动装置的手册 ;
MODBUS-RTU(从站):公开。
8.S7-200的高速输入、输出如何使用? S7-200 CPU上的高速输入、输出端子,其接线与普通数字量I/O相同。但高速脉冲输出必须使用直流晶体管输出型的CPU(即DC/DC/DC型)。
9.NPN/PNP输出的旋转编码器(和其他传感器),能否接到S7-200 CPU上? 都可以。S7-200 CPU和扩展模块上的数字量输入可以连接源型或漏型的传感器输出,连接时只要相应地改变公共端子的接法。
10.NPN和PNP传感器混接进S7-200 PLC的方法 大家都知道一般日系PLC如三菱、OMRON等一般公共端是 信号接入的时候通常是选用NPN传感器。欧系PLC的公共端一般是:大多选用PNP的传感器接入信号。如S7-200/300等那么当S7-200 PLC做系统时候,提供的传感器有PNP和NPN两种那么问题怎么解决呢?
方法一:NPN传感器利用中间继电器转接。
方法二:大家在设计的时候一般把200PLC的输入端[M]统一接24V-,其实,200PLC同样可以引入-信号输入,把1M的接24V ,I0.0-0.7统一接NPN传感器,把2M接24V-,把PNP传感器统一接I1.0-1.7这样就能达到NPN&PNP传感器混接进PLC的目的。原因很简单,200PLC支持两种信号接入,内部是双向二极管采用光电隔离进行信号传输的。
11.高速计数器怎样占用输出点? 高速计数器根据被定义的工作模式,按需要占用CPU上的数字量输入点。每一个计数器都按其工作模式占用固定的输入点。在某个模式下没有用到的输入点,仍然可以用作普通输入点;被计数器占用的输入点(如外部复位),在用户程序中仍然访问到。
12.为什么高速计数器不能正常工作? 在程序中要使用初次扫描存储器位SM0.1来调用HDEF指令,而且只能调用一次。如果用SM0.0调用或者第二次执行HDEF指令会引起运行错误,而且不能改变第一次执行HDEF指令时对计数器的设定。
13.高速计数器如何寻址? 为什么从SMDx中读不出当前的计数值? 可以直接用HC0;HC1;HC2;HC3;HC4;HC5对不同的高速计数器进行寻址读取当前值,也可以在状态表中输入上述地址直接监视高速计数器的当前值。SMDx不存储当前值。高速计数器的计数值是一个32位的有符号整数。
14、高速计数器如何复位到0? 选用带外部复位模式的高速计数器,当外部复位输入点信号有效时,高速计数器复位为0, 也可使用内部程序复位,即将高速计数器设定为可更新初始值,并将初始值设为0,执行HSC指令后,高数计数器即复位为0 。
15、为何给高速计数器赋初始值和预置值时不起作用,或效果出乎意料? 高速计数器可以在初始化或者运行中更改设置,如初始值、预置值。其操作步骤应当是:
设置控制字节的更新选项。需要更新哪个设置数据,就把控制字节中相应的控制位置位(设置为“1”);不需要改变的设置,相应的控制位就不能设置;
然后将所需 的值送入初始值和预置值控制寄存器;
执行HSC指令。
2、西门子 S7-300PLC 1.使用CPU 315F和ET 200S时应如何避免出现“通讯故障”消息? 使用CPU S7 315F, ET 200S以及故障安全DI/DO模块,那么您将调用OB35 的故障安全程序。而且,您已经接受所有监控时间的默认设置值,并且愿意接收“通讯故障”消息。OB 35 默认设置为100毫秒。您已经将F I/O模块的F监控时间设定为100毫秒,因此至少每100毫秒要寻址一次I/O模块。但是由于每100毫秒才调用一次OB 35,因此会发生通讯故障。要确保OB35的扫描间隔和F监控时间有所差别,请确保F监控时间大于OB35的扫描间隔时间。 S7分布式安全系统,一直到V5.2 SP1 和 6ES7138-4FA00-0AB0,6 ES7138-4FB00-0AB0,6ES7138-4CF00-0AB0 都会出现这个问题。在新的模块中,F 监控时间设定为150毫秒。
2.当DP从站不可用时,PROFIBUS上S7-300 CPU的监控时间是多少? 使用CPU的PROFIBUS接口上的DP从站操作PROFIBUS网络时,希望在启动期间检查期望的组态与实际的组态是否匹配。在 CPU属性对话框中的Startup选项卡上给出了两个不同的时间。
3.如何判断电源或缓冲区出错,如:电池故障? 如果电源(仅S7-400)或缓冲区中的一个错误触发一个事件,则CPU操作系统访问OB81。错误纠正后,重新访问OB81。电池故障情况下,如果电池检测中的BATT.INDIC开关是激活的,则 S7-400仅访问OB81。如果没有组态OB81,则CPU不会进入操作状态STOP。如果OB81不可用,则当电源出错时,CPU仍保持运行。
4.为S7CPU上的I/O模块(集中式或者分布式的)分配地址时应当注意哪些问题? 请注意,创建的数据区域(如一个双字)不能组态在过程映象的边界上,因为在该数据块中,只有边界下面的区域能够被读入过程映像,因此不可能从过程映像访问数据。因此,这些组态规则不支持这种情况:例如,在一个 256 字节输入的过程映像的 254 号地址上组态一个输入双字。如果一定需要如此选址,则必须相应地调整过程映像的大小(在CPU的Properties中)。
5.在S7 CPU中如何进行全局数据的基本通讯?在通讯时需要注意什么? 全局数据通讯用于交换小容量数据,全局数据(GD)可以是: 输入和输出标记,数据块中的数据,定时器和计数器功能 。
数据交换是指在连入单向或双向GD环的CPU之间以数据包的形式交换数据。GD环由GD环编号来标识。
单向连接:某一CPU可以向多个CPU发送GD数据包。
双向连接:两个CPU之间的连接:每个CPU都可以发送和接收一个GD数据包。
必须确保接收端CPU未确认全局数据的接收。如果想要通过相应通讯块(SFB、FB或FC)来交换数据,则必须进行通讯块之间的连接。通过定义一个连接,可以极大简化通讯块的设计。该定义对所有调用的通讯块都有效且不需要每次都重新定义。
6. 可以将S7-400存储卡用于CPU 318-2DP吗? 在通常的操作中,只能使用订货号为6ES7951-1K.。。 (Flash EPROM)和6ES7951-1A.。。 (RAM)的“短”》 存储卡。
7.尽管LED灯亮,为什么CPU 31xC不能从缺省地址124和125读取完整输入? 对于下列型号的CPU ,请检查 24V 电压是否接入引脚 1。LED由输入电流控制。引脚 1 上的 24V 电压需要做进一步处理。 313C(6ES7 313-5BE0.-0AB0),313C-2DP (6ES7 313-6CE0.-0AB0),313C-2PTP (6ES7 313-6BE0.-0AB0), 314C-2DP (6ES7 314-6CF0.-0AB0),314C-2PTP (6ES7 314-6BF0.-0AB0)
8.配置CPU 31x-2 PN/DP的PN接口时,当PROFINET接口偶尔发生通信错误时,该如何处理? 请确定以太网(PROFINET)中的所有组件(转换)都支持 100 Mbit/s全双工基本操作。避 免中心分配器割裂网络,因为这些设备只能工作于半双工模式。
9.在硬件配置编辑器中,“时钟”修正因子有什么含义呢?
在硬件配置中,通过CPU 》 Properties 》 Diagnostics/Clock,你可以进入“时钟”》 域内指定一个修正因子。这个修正因子只影响CPU的硬件时钟。时间中断源自于系统时钟,并且和硬件时钟的设定毫无关系。
10.如何通过PROFIBUS DP用功能块实现在主、从站之间实现双向数据传送?
在主站plc可以通过调用SFC14 “DPRD_DAT“和SFC15 “DPWR_DAT“来完成和从站的数据交换,而对于从站来说可以调用FC1 “DP_SEND“ 和FC2 ”DP_RECV“完成数据的交换。
11.可以从S7 CPU中读出哪些标识数据?
通过SFC 51“RDSYSST”可读出下列标识数据:
可以读出订货号和CPU版本号。为此,使用SFC 51和SSL ID 0111并使用下列索引:
1 = 模块标识;
6 = 基本硬件标识;
7 = 基本固件标识;
12.在含有CPU 317-2PN/DP的S7-300上,如何编程可加载通讯功能块FB14(‘GET’)和FB15(‘PUT’)用于数据交换?
为了通过一个S7连接在使用CPU 317-2PN/DP的两个S7-300工作站之间进行数据交换,其中该S7连接是使用NetPro组态的, 在S7通信中,必须调用通讯功能块。模块FB14(‘GET’) 用于从远程CPU取出数据,模块FB15(‘PUT’)用于将数据写入远程CPU。功能块包含在STEP 7 V5.3的标准库中。《 = cpu= 317-2pn/dp的通讯模块fb14(‘get’)和fb15(‘put’)的属性= := =》 FB14和FB15是异步通讯功能。这些模块的运行可能跨越多个OB1循环。通过输入参数REQ激活FB14或FB15。DONE、NDR或ERROR表明作业结束。PUT和GET可以同时通过连接进行通信。 注意:不能将库SIMATIC_NET_CP中的通讯块用于CPU317-2PN/DP。
13.对于紧凑CPU 313C-2 PtP和CPU 314-2 PtP作业同步处理需要注意什么?
在用户程序中,不可以同时编程SEND作业和FETCH作业。
即:
只要SEND作业(SFB 63)没有完全终止(DONE或ERROR),就不能调用FETCH作业(SFB 64)(甚至在REQ=0的时候);
只要FETCH作业(SFB 64)没有完全终止(DONE或ERROR),就不能调用SEND作业(SFB 63)(甚至在REQ=0的时候);
在处理一个主动作业(SEND作业、SFB 63或FETCH作业、SFB 64)时,同时可以处理一个被动作业(SERVE作业、SFB 65)。
14. 可以将MICR.master420到440作为组态轴(位置外部检测)和CPU 317T一起运行吗?
可以,但在动力和精度方面,对组态轴的要求差别非常大。在高要求情况下,伺服驱动SIMODRIVE 611U、MASTERDRIVES MC或SINAMICS S必须和CPU 317T一起运行。在低要求情况下,MICROMASTER系列也能满足动力和精度要求。
15.如何在已配置为DP从站的两个CPU模块间组态直接数据交换(节点间通信)?
两个CPU站配置为DP从站,而且由同一个DP主站操作,它们之间的通信通过配置交换模式为DX可以完成直接数据交换。
16.如何使用SFC65,SFC66,SFC67 和 SFC68 进行通信?
对于单向基本通信,使用系统功能 SFC67 (X_GET)从一个被动站读取数据,使用系统功能SFC68(X_PUT)将数据写入一个被动站(服务器)。这些块只有在主动站中才调用。对于一个双向基本通信,调用站中的系统功能SFC65 (X_SEND),在该站中想将数据发送到另一个主动站。在同样为主动的主动接收站中,数据将通过系统功能SFC66 (X_RCV)记录。 两种类型的基本通信中,每次块调用可以处理最多 76 字节的用户数据。对于S7-300 CPU,数据传送的数据一致性是 8 个字节,对于S7-400 CPU则是全长。如果连接到S7-200,必须考虑到S7-200只能用作一个被动站。
17.什么是自由分配 I/O 地址? 地址的自由分配意味着您可对每种模块(SM/FM/CP)自由的分配一个地址。地址分配在 STEP 7 里进行。先定义起始地址,该模块的其它地址以它为基准。 自由分配地址的优点:因为模块之间没有地址间隙,就可以优化地使用可用地址空间。在创建标准软件时,分配地址过程中可以不考虑所涉及的 S7-300 的组态。
18.诊断缓冲器能够干什么? 更快地识别故障源,因而提高系统的可用性。评估STOP之前的最后事件,并寻找引起STOP的原因。 诊断缓冲器是一个带有单个诊断条目的循环缓冲器,这些诊断条目显示在事件发生序列中;第一个条目显示的是最近发生的事件。如果缓冲器已满, 最早发生的事件就会被新的条目所覆盖。根据不同的CPU,诊断缓冲器的大小或者固定,或者可以通过HW Config中通过参数进行设置。
19.诊断缓冲器中的条目包括哪些? 1) 故障事件;
2) 操作模式转变以及其它对用户重要的操作事件;
3) 用户定义的诊断事件(用SFC52 WR_USMSG) ;
在操作模式STOP下,在诊断缓冲器中尽量少的存储事件,以便用户能够很容易在缓冲器中找到引起STOP的原因。因此,只有当事件要求用户产生一个响应(如计划系统内存复位,电池需要充电)或必须注册重要信息(如固件更新,站故障)时,才将条目存储在诊断缓冲器中。 20.如何确定MMC的大小以便完整地存储STEP 7项目?
为了给项目选择合适的MMC,需要了解整个项目的大小以及要加载块的大小。可以按照如下所述的方法来确定项目的大小: 1) 首先归档STEP 7项目。然后在Windows资源浏览器中打开已归档项目,并确定其大小(选中该项目并右击)。这会告诉您归档文件的大小。 2) 将块加载入CPU。现在仍然需要选择‘PLC 》 Module Information 》 Memory’。在此,在‘ Load memory RAM + EPROM’中,可以看到分配的加载内存的大小。 3) 必须将该值和已经确定的归档项目的大小相加。这样就可以得出在一个MMC上保存整个项目所需的总内存的大小。
21.CPU全面复位后哪些设置会保留下来?
复位CPU时,内存没有被完全删除。整个主内存被完全删除了,但加载内存中数据,以及保存在Flash-EPROM存储卡(MC)或微存储卡(MMC)上的数据,则会全部保留下来。除了加载内存以外,计时器(CPU 312 IFM除外)和诊断缓冲也被保留。具有MPI接口或一个组合MPI/DP接口的CPU只在全部复位之前保留接口所采用的当前地址和波特率。另一方面,另一个PROFIBUS地址也被完全删除,不能再访问。 重要事项:重新设置PG/PC之后,与CPU之间的通讯只能通过MPI或MPI/DP接口来建立。
22.为什么不能通过MPI在线访问CPU? 如果在CPU上已经更改了MPI参数,请检查硬件配置。可以将这些值与在‘Set PG/PC interface’下的参数进行比较,看是否有不一致。 或者可以这样做:打开一个新的项目,创建一个新的硬件组态。在CPU的MPI接口的属性中为地址和传送速度设置各自的值。将‘空’项目写入存储卡中。把该存储卡插入到CPU 然后重新打开CPU的电压,将位于存储卡上的设置传送到CPU。现在已经传送了MPI接口的当前设置,并且像这样的话,只要接口没有故障就可以建立连接。这个方法适用于所有具有存储卡接口的S7-CPU。
23.错误OB的用途是什么? 如果发生一个所描述的错误(见文件1),则将调用并处理相应OB。如果没有加载该OB,则CPU进入STOP(例外:OB70、72、7 3和81) 。 S7-CPU可以识别两类错误:
1) 同步错误:这些错误在处理特定操作的过程中被触发,并且可以归因于用户程序的特定部分。 2) 异步错误:这些错误不能直接归因于运行中的程序。这些错误包括优先级类的错误,自动化系统中的错误(故障模块)或者冗余的错误。
24. 在DP从站或CPU315-2DP型主站里应该编程哪些“故障 OBs”? 在组态一个作为从站的CPU315-2DP站时,必须在STEP7程序中编程下列OB以便评估分布式I/O类型的错误信息:
OB 82 诊断中断 OB 、OB 86 子机架故障 OB 、OB 122 I/O 访问出错。 1) 诊断OB82:如果一个支持诊断,并且已经对其释放了诊断中断的模块识别出一个错误,它既对进入事件也对外出的事件向 CPU 发出一个诊断中断的请求。操作系统然后调用 OB82。在 OB82 自己的局部变量里包含有有缺陷模块的逻辑基地址和 4 个字节的诊断数据。如果你还没有编程 OB82, 则 CPU 进入“停止”模式。你可以阻断或延迟诊断中断 OB ,并通过 SFC 39 - 42 重新释放它。 2) 子机架故障OB86:如果识别出一个 DP 主站系统或一个分布式 I/O 站有故障(既对进入事件也对外出的事件),该 CPU 的操作系统就调用 OB 86 。如果没有编程 OB 86 但出现了这样一个错误, CPU 就进入“停止”模式。你可以阻断或延迟 OB86 并通过 SFC 39 - 42 重新释放它。 3) I/O 访问出错OB122:当访问一个模块的数据时出错,该CPU的操作系统就调用OB 122。比方说,CPU在存取一个单个模块的数据时识别出一个读错误,那么操作系统就调用OB 122。该OB 122以与中断块有相同的优先级类别运行。如果没有编程OB 122,那么CPU由“运行”模式改为“停止”模式。
25.为什么在某些情况下,保留区会被重写? 在STEP 7的硬件组态中,可以把几个操作数区定义为“保留区”。这样可以在掉电以后,即使没有备份电池的话,仍能保持这些区域中的内容。如果定义一个块为 “保留块”,而它在 CPU 中不存在或只是临时安装过,那么这些区域的部分内容会被重写。在电源接通/断开之后,其他内容会在相关区里找到。
26.为何不能把闪存卡的内容加载入S7 300 CPU?
你的项目在闪存卡上。现在要用它加载 S7 300 。但加载结束后发现 CPU 的 RAM 中仍是空的。出现此问题的原因是你的程序里有无法处理的,‘错误的’组织块(比如说, OB86 没有 DP 接口)。在重新设置和重新启动 CPU 后, RAM 仍是空的。诊断缓冲区对这个‘无法加载’的块会提示一些信息。
27.当把 CPU315-2DP 作为从站,把 CPU315-2DP 作为主站时的诊断地址
在组态一个 CPU315-2DP 站时,你使用 S7 工具 “H/W CONFIG” 来分配诊断地址。如果发生一个故障,这些诊断地址被加入诊断 OB 的变量 “OB82_MDL_ADDR” 里。你可在 OB82 里分析此变量,确定有故障的站并作出相应的反应。 下面是如何分配诊断地址的例子:
第 1 步:通过 CPU315-2DP 组态从站并赋予一个诊断地址,比如 422; 第 2 步:通过 CPU315-2DP 组态主站; 第 3 步:把组态好的从站链接到主站并赋予一个诊断地址,比如 1022;
28.需要为S7-300 CPU的DP从站接口作何种设置,才可以使用它来进行路由选择?
如果使用CPU作为I-Slave,并且该CPU也起S7 路由器的作用,那么请注意如下事项: 用于路由选择的从站的DP接口必须设置为活动状态。这可以在HW Config中完成:在DP接口的属性对话框中,选项‘ Commissioning/Test operation’或‘Programming, status/modify.。。’必须激活。关于这些设置的注意事项可以在下表中获得。
对于S7 路由连接,有 4 种可用的连接资源-与其它任何连接资源无关。没有使用PG/OP的连接资源或S7基本通信。 如果必须通过DP接口来建立一个与位于其机架上的通信伙伴连接时(如在 CP 343-1 中),也要使用一个路由连接。而对于通过MPI接口与一个位于其机架上的通信伙伴的连接,则不使用路由连接资源,因为在这种情况下,能够直接到达伙伴。注意事项:这不适用于CPU 318。
29.为什么当使用S7-300 CPU的内部运行时间表时,没有任何返回值?
当对CPU 312IFM到316-2DP参数化系统功能块 SFC2, SFC3 和 SFC4 时,为一个运行时间表规定了一个大于 ‘B#16#0’的标识符,那么将出错并且所需的功能也无法用。此种情况下,将在块的‘ RETVAL’输出处输出标识符 ‘8080h’ 。
说明:对于这些 CPU,只有一个计时器可用。因此你应该只用标识符 ‘B#16#0’。在一个周期块(OB1, OB35)里一定不能调用系统功能 SFC2 ‘SET_RTM’,而是应该在重启动OB(OB100)调用它。你也可以通过外部触发器来启动该块。不然的话,该块将老是复位运行计时表,永远完成不了计数。
30.变量是如何储存在临时局部数据中的?
L 堆栈永远以地址“0”开始。在 L 堆栈中,会为每个数据块保留相同个数的字节,作为存放每个块所拥有的静态或局部数据。 当某个块终止时,那么它的空间随之也被重新释放出来。指针总是指向当前打开块的第一个字节。