工控之家

 找回密码
加入工控之家

PLC该怎样学习?

  [复制链接]
发表于 2012-8-8 23:05:46 | 显示全部楼层 |阅读模式
新手学习PLC编程的入门建议  
----  


 

鄙人原本是化工专业毕业的,后因工作需要,加之个人兴趣,才转行搞仪表、机械。十年前,我刚开始使用PLC时,也是一头雾水。仗着自己对硬件、工程知识的熟悉,和对组态软件的粗浅了解,硬着头皮接下了任务。当时已经来不及接受培训,相关资料极其缺乏,仅有的参考资料是一本英文的S7-200手册,以及西门子网站上找到的一些全西文的示例,总算在三个月内完成了系统的构建、软件的编写工作。期间走弯路、出故障是家常便饭,经常搞得我茶饭不思,而且还由于操作不慎烧毁过一台PLC。所以我非常理解那些刚入门的网友两手抓瞎的感觉。

在此,我想粗略的总结一下自己的学习之路,供网友们参考。

1、编程需要坚强的毅力和足够的耐心

人各有所长。有些人把编程看作一项冗长而枯燥的工作;有些人把编程看作一项趣味的智力游戏。如果你是前者,强烈建议你远离这份工作。毕竟编程工作是对人的毅力和耐心的挑战。我所在实验室中,很多学生看到我编程序就会惊讶于我面对这一堆堆符号所表现出的专注。其实,这是兴趣使然。兴趣使我具备了足够的毅力和耐心。经过无数次失败后,当看到一个个符号按我的思路整齐的排列,PLC按我的要求有条不紊的运行时,兴趣得到了极大的满足,如同打通了一个游戏的关口。所以,我告诉这些学生:你们看到的是一堆枯燥怪异的符号,我看到的却是一群热情奔放的舞者,而我则是她们的导演。

2、编程需要敢于实践的信心

我曾经教过一个学生学AutoCAD,我对她的唯一要求就是实践。我告诉她:你随便怎么操作,大不了一张图重画;最坏的结果是系统崩溃,没关系,系统重做,再来;只要电脑没被砸了,怎么都行。两年后,我再看到她做的CAD图纸,也自叹不如。

同样道理,只有不断地在PLC上运行这些指令,观察运行的结果,才能弄清PLC指令的作用。很多初学者对PLC一脸的迷茫,往往是出于一种畏惧,担心损坏设备。而这些畏惧是没有任何道理的。仔细的阅读手册是非常重要的,但是仅靠读书是成不了一个工程师的。更何况手册上的内容并非面面俱到。我在接触到那些不熟悉的指令时,喜欢单独编一个小程序,让PLC运行。然后逐个修改条件,观察运行的结果(MicroWin为用户提供了非常好的监控手段),反过来再重新理解手册的描述,这样就可以非常直观的理解这些指令的作用和使用方法。不必担心自己写的程序会有什么问题,会影响PLC的正常工作。程序有没有问题,只有让PLC运行了才能发现。而发现问题并解决问题就是对自己能力的提高。撇开硬件操作不谈,单就软件来说,我还真没有遇到过由于软件问题而损坏PLC的事。在这里不必担心继电器电路接错线可能造成的后果。所以,大胆的实践是PLC编程的必由之路。

当然,大胆实践并不是野蛮操作,而是必须遵循必要的规范。还有一个要注意的,在程序未经可靠性证实之前,千万不要挂接负载,以免造成不必要的损失。数字量的输出有LED显示;而模拟量处理可以采用一些硬件或软件模拟手段来解决。

3、编程需要有缜密的逻辑思维

编程本身就是一种逻辑思维过程。在高级语言中,使用最多的是if then else、select这些条件判别语句,这就是逻辑中的因果关系。PLC程序就是由这些因果关系组成的:判别条件是否成立,进而决定执行相应的指令。最初的PLC是用来替代继电器逻辑电路的,所以继承了继电器电路以触点作为触发条件的描述方式。在PLC中,以虚拟触点代替了继电器的金属触点,而继电器电路所表达的逻辑关系还是被完整的保留下来。即使引入了继电器电路难以胜任的数值处理过程,PLC从根本上还是在执行一个个因果关系。所以,理顺对象的各个事件之间的逻辑关系,是编程之前必须精心做好的准备工作。我在接到一项任务后,第一件事就是整理出一份逻辑关系图,与用户反复商讨,取得用户的认可,然后才真正进入程序的编写过程。

4、不可或缺的相关知识

PLC的程序是直接作用于对象的具体工艺过程,那么对对象具体工艺过程的理解是非常重要的的。我在与用户的交流过程中,会用我所掌握的Unit Operation的知识分析用户的工艺过程,协助用户整理过程控制中的各个逻辑关系,甚至包括各种仪表、硬件的配置。这得益于我原本所学的专业。当然,不能要求所有搞PLC程序的工程师都有我这样的经历。但是有两门知识却是不可或缺的:一是过程仪表的硬件知识,包括传感器、变送器(二次仪表)和PLC本身,这是构建控制系统的基础;二是过程控制理论,包括各种控制模型的原理和应用,其中最重要的是二位调节和PID调节模型。PID调节是目前用得最广泛的过程控制手段,且变化多端。学习PID最好的方法就是读书。几乎所有讲解过程控制的书籍都有关于PID的内容,多读基本相关的书籍对理解PID是很有益处的。我发现不少网友在进入PLC领域时,缺乏这些相关知识。这并不可怕;可怕的是当事者不能静下心来弥补知识的缺陷。我们不要怪罪学校没有教授这些内容,而是要注重自己如何去学习这些知识。工作中遇到的许多问题是学校里没讲过的,这不能成为我们拒绝工作的理由,而应该以积极的态度去应对这些问题。我的体会是,为了解决工作中的问题而学习的知识,比课堂上学的东西更容易记住。

5、养成良好的编程习惯

每个人编程都会有不同的习惯和特点,不能强求一致。但是一些好的习惯还是应该为大多数人所遵循。一是理顺逻辑关系、时序关系,编制程序框图;二是合理分配主程序、子程序和中断程序;三是合理分配寄存器,编制寄存器符号表。

PLC编程更接近于单片机,或者说PLC就是模块化的单片机。因此PLC的很多操作都是直接针对寄存器的,如果在程序中出现不合理的寄存器地址重叠,一定会出现不可预想的后果。编制寄存器符号表不仅可以避免上述问题(MicroWin会有问题提示),而且可以使程序具备更好的可读性。这和VB中定义变量有异曲同工之处。

VB编程中关注的是事件,不强调主程序和子程序的观念,因为VB主程序的工作是由PC的操作系统完成的。PLC则不然。PLC程序是以主程序为主干的,CPU不断的循环执行主程序,只有触发条件成立时才会调用子程序或中断程序。即子程序和中断程序所执行的任务不是全时需要的。如果把这些任务都放在主程序中会无端增加主程序的工作量,降低程序的效率。这点和单片机的编程思路是一致的。子程序的使用可以使整个程序的逻辑更清晰。而且子程序可以分开编写、调试,最后“安装”到主程序上。这样你可以一个一个解决问题。

PLC编程,无论是LAD,抑或STL,都不如VB那么直观、有趣,更不如CAD那么形象。但比单片机的汇编语言的可视性强多了。对于初学者,LAD(梯形图)的编程相对直观,更容易上手。

最后,PLC提供了丰富的指令、模块,比单片机方便了很多。但是初学者编程时应尽量先使用简单的指令达到目的。尽管看上去有点土,却不失为一个入门的好途径,且对你理解那些较为复杂的指令会有帮助。具备了一定经验后,应该考虑掌握复杂指令的应用,以及程序的优化
发表于 2015-3-16 07:10:26 | 显示全部楼层
谢谢 很受用
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2012-8-8 23:06:01 | 显示全部楼层
学习PLC密决  
----  


 
1.不要看到别人的回复第一句话就说:给个代码吧!你应该想想为什么。当你自己想出来
再参考别人的提示,你就知道自己和别人思路的差异。

2.别小家子气,买本书几十块都舍不得,你还学个P。为了省钱看电子书,浪费的时间绝对
超过书的价值。当然如果查资料,只能看PDF。

3.学习新的开发软件时,一定要看帮助手册。买的书不够全面。刚接触一个软件,什么都不
懂,就盲目的问东问西,让人看起来很幼稚。

4.不要蜻蜓点水,得过且过,细微之处往往体现实力。

5.把时髦的技术挂在嘴边,还不如把过时的技术记在心里。

6.看得懂的书,请仔细看;看不懂的书,请硬着头皮看。
.别指望看第一遍书就能记住和掌握什么——请看第二遍、第三遍。

7.多实践,调试,去写去调,只用软件模拟,是永远成不了高手的。

8.保存好你做过的所有的源程序、原理图等----那是你最好的积累之一。

9.对于网络,还是希望大家能多利用一下,很多问题不是非要到论坛来问的,首先你要学会
自己找答案,比如google、百度都是很好的搜索引擎,你只要输入关键字就 能找到很多相
关资料,别老是等待别人给你希望,看的出你平时一定也很懒!
10 到一个论坛,你学会去看以前的帖子,不要什么都不看就发帖子问,也许你的问题早就
有人问过了,你再问,别人已经不想再重复了,做为初学者,谁也不希望自己的帖子没人回
的。

11,论坛论坛,就是大家讨论的地方,总期望有高手总无偿指点你,除非他是你亲戚!!讨论者,起码是水平相当的才有讨论的说法,如果水平真差距太远了,连基本操作都需要别人给解答,谁还跟你讨论呢。
什么样的人是浮躁的人
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2012-8-8 23:07:46 | 显示全部楼层
70:当一个DP从站出故障,如何在输入的过程映像被清成“0”以前保存它们?
   当一个DP从站出故障时,OB86(通过S7-300/400)被调用。可用下列方法“保存”输入的过程映像:
1. 把从站的所有输入循环地复制到一个独立的区里。
2.如果从站出问题,则 OB86 被启动。在此 OB 里你可设一个标志位来可防止进一步的循环复制操作。
3. 当从站返回总线后,你把 OB86 里的标志位复位。

71:对模拟量模块而言,如何处理未使用的通道?
如果模块带有MANA : 短接所有的未使用通道的M-到 MANA ,如果可能,连接MANA 到接地极,把模块的测量模式设置为: 0 - 20/ + -20mA. ,短接未使用的COMP+/COMP-. IC+ / IC-可以保持悬空。
如果模块不带有 MANA : 把所有未使用的通道M-连接到使用通道的M-.等在输入端UCM > 2.5V 时,连接所有未使用的 M-到cpu的接地或系统的接地. 把模块的测量模式设置为: 0 - 20/ + -20mA. ,短接未使用的COMP+/COMP-. IC+ / IC-可以保持悬空。
对于SM 331-7NF10-0AB0模块在4通道模式:禁止未用的通道,这些输入端悬空即可
对于Ex模块SM 331-7RD:未使用的通道可以保持悬空72:上位机与plc进行通讯,硬件都需要哪些?

72:哪些软件里含有CP5511,CP5512,CP5611,RS232 PC-Adapter 的驱动?
  如果安装了相应的软件后包含“Set PG/PC Interface …”组件,那么这些软件都含有CP5511,CP5512,CP5611,RS232 PC-Adapter 的驱动,只需在“Set PG/PC Interface …”->“Select…”->选择相应的驱动,然后“Install-->”即可。
  具体的软件有Step7,Step7 MicroWin,Simatic Net,WinCC,Protool,Flexible,PCS7。

73:当试图通过TeleService建立PRODAVE MPI和样列程序之间的通讯时,为什么会出现出错消息4501?
   调制解调器没有响应,并产生了出错消息4501。在这个情况下,工作站的规范不正确。 在TeleService对话框中检查工作站的名称和工作站(standort)规范。此处可能有个不正确的缺省设删除“station”(“standort”)域中的缺省名,或输入正确的工作站名。那么就可以使用调制解调器在PRODAVE MPIY和TeleService之间建立连接。

74:是否可以将数据块的当前值作为初始值从AS传送到项目中?
可以。从AS中“ONLINE,打开相关数据块(DB).使用软盘图标“OFFLINE”保存DB.
  通过“File > Generate Source”在DB中产生STL.源.代.码. 通过手动操作将BEGIN和END_DATA_BLOCK行之间的当前值与相应的声明(初始值)逐行 连接起来,从而得到下列声明语句:
   STRUCT
   wordVar : WORD := W#16#ABCD;
   ...
   END_STRUCT ;
   编译STL.源.代.码。

75:在通讯任务中,在哪些OB中必须调用SFB?
   在启动型OB(如用于S7-300的OB100和用于S7-400的OB100和OB101)和循环模式OB(OB1)中,必须调用数据通讯或程序管理(把PLC切换到STOP或RUN)所需的所有SFB。 OB100是启动型OB,并在重新启动CPU时运行。例如,在该OB中,用标记M1.0和M0.1来释放第一个通讯触发器。

76:怎样编程间接访问一个ARRAY类型变量的元素?
   一个位、字节或者字符域的尺寸是按照字节限制排列的——在所有其它情况下是按照字对齐的。表T6-1中给出了一个域的存储示例。操作系统计算域中单个元素末端位置的位地址。域被分配到从下一个字地址(或字节地址)。下一个数据类型从下一个整字开始(或者整字节).
  声明部分:
  在声明部分,必须定义一个与将被间接寻址的ARRAY有着同一结构的ARRAY。不一定非要将ARRAY声明为IN-OUT变量;也可以声明为TEMP、IN或OUT变量。
  网络:
  域宽度(OFFSET)在网络中定义。ARRAY中的单个元素的最小常规数据宽度是一个字节;即使在两个变量之间定义一个BOOL。有必要确定相关的域的宽度和确定下一个期望域的起始地址。可使用下面的算法: 地址(指数):b = 元素长度*(指数 - 1)
  创建具有不同数据类型的结构时,必须注意,在特定的环境下可能会自动插入填充字节。
  保存ARRAY数据类型
  示例:ARRAY 【1..2,1..3】 OF 整数 将生成下列域:
  多维域是按照顺序保存的。在本例中整数 【1,1】后面是整数 【1,2】,整数 【1,3】后面是整数 【2,1】。

77:STEP 7 以哪种格式存储POINTER参数类型?
   STEP 7以 6 个字节保存POINTER参数。显示了用于保存POINTER参数类型的内存区域以及每个字节中保存的数据。POINTER参数类型保存了下列信息: DB号(如果DB中没有保存任何数据时为0)。 CPU中的内存区域(表格中列出了不同内存区域的十六进制代码)。
  数据的地址(按照Byte.Bit格式)。
  如果将形式参数声明为POINTER参数类型,则只需要指定内存区域和地址。STEP 7自动将输入项目的格式转换为指针格式。

78:因为总是要首次调用Alarm8P(SFB35)块,怎样避免OB 1初始化过程花费太长时间?
   激活(首次调用)报警块Alarm(SFB33)、A larm_8(SFB34)和Alarm_8P(SFB35)比简单地执行作业检查需要多花费 2 到 3 倍的运行时间。当传送告警时,块的运行时间也会同样长。 然而警报通常不会成群发生,当编程时,需要注意警报块的首次调用,因为此处用到的所有块需要很长的运行时间,因此被调用OB的运行时间在某些情况下将显著增加。将警报块的首次调用移动到OB 100/101/102,可以将较长的运行时间转换到启动过程。此处处理时间也会较长,但是由于与模块的参数设置同时进行,启动时间不会太长。

79:当不能卸载STEP 7时,该怎么办?
   设法通过控制面板卸载STEP 7。如果安装文件已损坏,卸载程序常会出错,并伴随出错信息。 另外STEP 7 CD包含文件Simatic STEP7.msi。可以通过这个文件卸载STEP 7。

80:加密的300PLC MMC处理方法?
   如果您忘记了您在S7-300CPU Protection属性中所设定的密码,那么您只能够采用siemens的编程器PG(6ES7798-0BA00-0XA0)上的读卡槽或采用带USB接口的读卡器(USB delete?S7 Memory Card?prommer 6ES7792-0AA00-0XA0),选择SIMATIC Manager界面下的菜单 File 选项删除MMC卡上原有的内容,这样MMC就可以作为一个未加密的空卡使用了,但无法对MMC卡进行jie密,读取MMC卡中的程序或数据。

81: 以314C为例计数时如何清计数器值?
   有两种方法:
   1:在参数设置中“Gate function”选“Cancel count”软件门为0,在为1时,值将清零,
   2:利用写“Job”的方式,写计数值的任务号为1。

82:CP342-5能否用于PROFIBUS FMS协议通讯?
  CP342-5支持PROFIBUS DP协议,不能用于PROFIBUS FMS协议通讯,同样CP343-5只支持PROFIBUS FMS协议,不能用于PROFIBUS DP协议通讯,而CP342-5和CP343-5都支持PROFIBUS FDL的链接方式;

83:为什么CP342-5 FO无法建立通讯?如何配置?
   CP342-5 FO不支持3MB,6MB的通讯速率,如果您购买的是5.1版本的CP342-5,而STEP7中没有V5.1版的CP342-5时,则可以插入一个V5.0版的CP342-5模块,功能不受影响。CP342-5在S7-300系统中的安装位置与普通的S7-300 I/O模块一样,可以插在4至11这8个槽位中的任何一个。

84:CP342-5的3中工作方式有什么区别?
   No DP方式下:可以用CP342-5通讯口进行S7编程或进行PROFIBUS的FDL连接,连接人机界面;
   DP Master方式下:CP342-5除了作为网络中的PROFIBUS主站之外,也可用于S7编程、FDL连接和连接人机界面。DP delay time参数一般不需设定,除非您采用FDL连接时,要与DP的I、O点刷新时间相一致,才根据PROFIBUS网络性能进行调整;
   DP Slave方式下:CP342-5除了作为网络中的从站之外,如果选择了The module is an active node on the PROFIBUS subnet选择框,那么CP 342-5也可用于S7编程、FDL连接和连接人机界面,否则CP342-5只能作为从站使用;

85:CP342-5 最多能完成多少数据交换?
   一套S7-300系统中最多可以同时使用4块CP342-5模块,每块CP342-5能够支持16个S7 Connection,16个S5-Compatible Connection。当CP342-5处在No DP模式下工作时,最多同时支持32个通讯链接,而处在DP Slave或DP Master模式下时,最多同时支持28个通讯链接。CP342-5 作为PROFIBUS DP主站时,最多链接 124个从站,和每个从站最多可以交换244个输入字节(Input)和244个输出字节(Output),与所有从站总共最多交换2160个输入字节和2160个输出字节。CP342-5 作为从站时,与主站最多能够交换240个输入字节和240个输出字节。CP342-5 可以最多连接16个操作面板(OP)以及最多创建16个S7 Connnection。

86:如何实现在从站断电、通讯失败或从站通讯口损坏等现象出现时,主站能够不停机?
   需要在您的STEP7项目中插入相应组织块。插入这些组织块时,不需要编程内容,当从站断电、通讯失败等现象出现时,主站只报总线故障,但不停机。这样,无论从站先上电,还是主站先上电,系统都能正常运行:
  在S7-300中加入OB82、OB86、OB122; 在S7-400中加入OB82~OB87、OB122;

87:CP342-5连接上位机软件或操作面板时应该选择什么工作模式?
   如果您只是用CP342-5连接上位机软件或操作面板(OP),这时通讯采用的是S7协议,那么建议您选择No DP模式,并且不需要调用FC1(DP_SEND)和FC2(DP_RECV)功能块,它们只是在PROFIBUS DP通讯时才使用;

88:为什么系统上电后,即使CP342-5开关已经拨至Run,但始终处于STOP状态?
   应当检查STEP7程序和组态是否正确(删除程序,只下载硬件组态)、检查CP342-5连接的24V电源线是否正常、M端是否与CPU的M端短接、通讯电缆连接是否正确(确认通讯电缆未内部短路),CP的firmware是否正确。如果您确认可以排除以上原因,那么可能您的CP342-5已经损坏,请更换;

89:如何用CP342-5组态PROFIBUS从站?
   1.在STEP7中生成一个新的项目,并插入一个S7-300站。
   2.在硬件组态窗口中选择一个S7300的导轨以及相应的CPU。
   3.硬件组态窗口中,在路径 "SIMATIC 300 > CP 300 > PROFIBUS > CP342-5" 选中于您订货号和版本号对应的CP342-5,插入到S7300站对应的槽位中,注意如果您购买的是Version5.1,而组态中只能够找到Version5.0,您可以选用Version5.1替代Version5.0.。
   4.在插入CP342-5的过程中,会弹出一个PROFIBUS属性窗口,请点击”New…”按钮,创建一个PROFIBUS网络PROFIBUS(1) ,并设定CP342-5作为从站的站地址为3。
   5.双击CP342-5,打开CP342-5的属性窗口,在"Operating Mode" 标签页下选择"DP Slave" 选项,此时会弹出一个警示窗口,告知您如果要用CP342-5实现CPU和 PROFIBUS从站的通讯,必须调用FC1(DP_SEND)和FC2(DP_RECV)功能块,实现CPU与CP342-5之间的数据交换,而CP342-5与PROFIBUS的数据交换是自动完成的,不用编程。FC3和FC4用于诊断和通讯功能的控制,一般不用调用。
   6.点击OK ,存盘编译。.

90:如何用CP342-5组态PROFIBUS主站?
   1.在STEP7的SIMATIC Manager窗口中在插入一个S7300站;
   2.重复以上组态从站步骤的2-4步,注意插入CP342-5时,不能点击”new…”按钮,而直接用鼠标选中以上创建的PROFIBUS(1)网络,点击OK;
  在"Operating Mode"标签页中选择"DP Master"选项;

91:采用CP342-5的DP通讯口与采用CPU集成的DP通讯口进行通讯有什么不同,这两种通讯口功能有什么不同?
   可以通过CPU集成的DP通讯口或CP443-5模板的DP通讯口,调用Load/Transfer指令(语句表编程,如图2)、Mov指令(梯形图编程)或系统功能块SFC14/15访问从站上的I/O数据;
   如果您使用342-5模块的DP通讯口进行通讯,那么您就不能使用Load/Transfer指令(语句表编程)、Mov指令(梯形图编程)直接访问PROFIBUS从站的I/O数据。采用CP342进行PROFIBUS通讯包括两个步骤:
   1.CPU将数据传输到CP通讯卡的数据寄存器当中;
   2.数据从CP342-5的数据寄存器当中写到PROFIBUS从站的Output数据区(反过来就是CPU读取从站Input数据的过程);CP342-5与从站的Input/Output数据区的通讯过程是自动进行的,但是您还必须自己手动的调用功能块FC1(”SEND”)和FC2 (”RECV”),完成CP342-5与CPU之间的数据交换。

92:功能块DP_SEND、DP_RECV"的返回值代表什么意思,如何理解?
   "DP_SEND"功能块包括有"DONE","ERROR" 和 "STATUS"三个参数,用来指示数据传输的状态和成功与否。"DP_RECV"功能块包括有"NDR", "ERROR", "STATUS" 和 "DPSTATUS"四个参数,用来指示数据传输的状态和成功与否。您可以定义相应的数据地址区,存放这些返回值,分析返回的值的意思,当Error=False,STATUS=0,DONE=True,NDR=True时,说明CPU与CP342-5之间的数据交换成功进行。

93: DP从站,CP模板以及CPU之间的数据通讯过程是如何进行的?
   使用CP342-5模块,无论调用"DP_SEND" 功能块还是"DP_RECV" 功能块,您都不能直接读写某个PROFIBUS从站的I/O数据。CP342-5模块有一个内部的Input和Output存储区 ,用来存放所有PROFIBUS从站的的I/O数据,较新版本的CP342-5模板内部存储器的Input和Output区分别为2160个字节,Output区的数据循环写到从站的输出通道上,循环读出从站输入通道的数值存放在Input区,整个过程是CP342-5与PROFIBUS从站之间自动协调完成的,您不需编写程序。您可以在PLC的用户程序中调用"DP_SEND"和"DP_RECV"功能块,读写CP342-5这个内部的存储器。

94:通过CP342-5,如何实现对PROFIBUS网络和站点的诊断功能?
   用功能块"DP_DIAG" (FC 3) 可以在程序中对cp模块进行诊断和分析,可以通过job类型如DP 诊断列表,诊断单个dp状态,读取dp从站数据,读取cp或cpu的操作模式,读取从站状态等等。  

95:为什么当CP342-5模块作为PROFIBUS DP主站,而ET200(如IM151-1或IM153-2)作为从站时,CP342-5上的SF等不停闪烁?
   当S7-300系统中的CP342-5作为DP主站,下挂IM153-2 模块时,IM153-2只能作为DP主站,而不是S7从站运行。 可以采取通过GSD文件将ET200从站组态进你的系统。随后IM153模块可作为 DP 标准从站运行。为此,您必须将GSD文件安装到硬件目录中(通过菜单序列Tools > "Install new GSD file")。在更新了硬件目录后您会在"PROFIBUS-DP > Additional Field Devices".中发现DP从站。

96:在STEP7中打开一些对象时出错是什么原因?
   有的时候您在打开某些项目中的对象时,STEP7会弹出报错窗口,错误信息为 ’*.dll’文件无法被装载,代码是257:5,
  错误信息是一个或多个对象不能被显示,出现这种错误的原因是您没有安装与要打开对象相关的软件包。

97:如果想通过上位或触摸屏对PLC中S5TIME类型的参数进行设定,有什么方法?
1、 从上位机写整型数INT或实数REAL到PLC,首先该数值需包含以毫秒为单位的时间值,在写入PLC的数据存储区后,利用ITD(Integer to Double Integer)或RND(Real to Double Integer with Rounding Off)将该值转换为双整形,然后将该值写到类型为TIME的变量里,在程序中调用FC40,将TIME转换成S5TIME即可。
2、 从上位机写WORD到PLC,首先该数值需包含以某时基为单位的时间值,在写入PLC的数据存储区后,用Word Logic下的WOR_W指令将该值与其时基相或,再利用MOVE指令将得到的数值写入S5TIME类型的变量中。
3、 如果使用WinCC作为上位软件,或上位软件支持32位带符号浮点数,可以从上位写32位带符号浮点数到PLC中定义为TIME的变量,然后在程序中调用FC40,将TIME转换成S5TIME即可。

98:STEP 7中相关时间处理和转换的功能块有哪些?
   SFC 0 "SET_CLK" 设置CPU时钟
   SFC 1 "READ_CLK" 读出CPU时钟
   FC 3 "D_TOD_DT" 从DATE_AND_TIME 中取出DATE。
   FC 6 "DT_DATE" 从DATE_AND_TIME 中取出the day of the week,即星期几
   FC 7 "DT_DAY" 从DATE_AND_TIME 中取出时间
   FC 8 "DT_TOD"
   FC33用于S5TIME到TIME的转换
   FC40用于TIME到S5TIME的转换

99:如何实现带电拔出或插入模板,即热插拔功能?
   硬件要求:
  使用普通的S7-300导轨和U型总线连接器是不能实现热插拔功能的,您必须购买有源总线底板,才能实现该功能。另外,您在配置时,必须使用MLFB 6ES7 153-1AA02-0XB0版本以上的接口模块,因为它支持DP协议的DPV1版本,而MLFB IM153-1AA00-0XB0模块是不支持该功能的。目前您能够购买到的IM153接口模块都支持热插拔,只有2-3年以前的IM153接口模块不支持热插拔。
  软件要求:您必须在STEP7 5.1版本以上进行配置;
  如果您采用S7-400 CPU或S7-400 CP作为DP主站,那么您可以直接在IM153的属性窗口的"Operating Parameters"标签页里配置热插拔功能。
   1:在STEP7的硬件组态窗口的PROFIBUS DP目录中选择相应IM153模块,可以看出该模块支持“module exchange in opration”(热插拔);
   2:将IM153模块拖到PROFIBUS总线上;
   3:选择I/O模块,插入到ET200M站的各个槽位中;
   4:双击ET200M站,打开属性窗口,选中“Replace modules during operation“(热插拔)选项;
   5:属性窗口中提供了ET200M站热插拔功能所需的有源总线导轨的订货号;
   6:属性窗口中提供了该型号IM153,插入的I/O模块对应使用的有源总线底板的订货号;
   除了以上的硬件组态之外,还要向S7-400中下载OB82、OB83、OB84、OB85、OB86、OB87、OB121、OB122等组织块。当ET200M从站上进行模块的热插拔时,中断组织块OB83 ,OB85,OB122被调用。
   如果您采用S7-300 CPU 或 CP 342-5作为DP主站,那么您只能够通过安装GSD文件的方式将IM153模块组态成DP从站,并双击IM153,打开它的属性窗口,进行设置。否则您在STEP7的硬件组态窗口中直接将PROFIBUS DP目录ET200M文件夹下IM153模块挂在PROFIBUS总线上。

100:我如何做到对自己的程序块进行加密保护?
您能够通过STEP7软件的KNOW_HOW_PROTECT功能实现对您程序代码的加密保护。
如果您双击鼠标打开经过加密的程序块时,您只能看到该程序块的接口数据(即IN, OUT 和 IN/OUT 等类型的参数)和注释信息,而程序块中的代码及代码的注释,临时/静态变量是不能被看到的。同时您也无法对加密保护的程序块做出任何改动。
如何实现程序块保护:
1. 打开程序编辑窗口LAD/FBD/STL;
2. 将要进行加密保护的程序块生成转换为.源.代.码文件(通过选择菜单 File— ;Generate source 生成);

3. 在LAD/FBD/STL 窗口中关闭您的程序块,并在SIMATIC
Manager项目管理窗口的source文件夹中打开上一步所生成的source文件;

4. 在程序块的声明部分,TITLE行下面的一行中输入”KNOW_HOW_PROTECT”;
5. 存盘并编译该source文件(选择菜单FileàSave,FileàCompile);
6. 现在就完成了您程序块的加密保护;

101:我如何做到对自己的程序块进行<此处内容被屏蔽>?
取消对程序块的加密保护
1. 打开程序块的Source源文件;
2. 删除文件中的KNOW_HOW_PROTECT;
3. 存盘并编译该source文件;
现在程序块的加密保护已经取消。
注意: 如果没有 STL source 源文件,您是无法对已经加密的程序块进行编辑的.
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2012-8-8 23:06:09 | 显示全部楼层
如何学习PLC  
----  


 

弄通有关PLC程序设计理论是重要的。没有这方面的理论准备或指导,仅靠在实践中摸索,简单的问题还好办。复杂的就不好办了。不仅无从下手,而且花了很多时间与精力,也难编出效率较高、质量也较高的程序,常常是事倍功半。
但是,编程的具体实践,以及在这个实践中得来的知识或技能,即经验,也是重要的。没有经验,仅有理论,既无法深刻理解理论,又无法灵活应用理论。这正如学数学,如仅了解一些定理或记住一些公式,没有作相应的练习,肯定是学不好的。更不用说,任何理论也都只是经验的总结,归根到底也都有是来自实践。
1、经验积累
经验有别人的,也有自己的,都很重要。前者要靠细心学习,后者要靠用心积累,都要在一定的时间与必要的精力。
别人的经验有上了书的或登载在杂志上的。有的是细心学习别人的,但多数是我自己的经验。所有的例子都经我测试过,都经实践证明是可行的。我想,别的书本或杂志上介绍的也会是这样的。所以学习这样杨功的经验是必要的。
还有就是你同事的经验,也是值得学习。这种经验离你很“近”,很易借鉴。
自己的经验则是最重要的。要在自己的实践中,积累自己的经验。同时,最好在学别人的经验时,也能亲自作些测试,能使自己也有类似的经历,进而把这些经验变成自己的。这也是自己经验的重要积累。
还有一些失败的经验,这往往是不会公开的,但这些经验也要学习,也要积累。
经验的积累要用自己的脑记,更要用电脑记。最好作些分类,建立一个自用的程序库,以便于随时引用。
2、经验升华
经验还有待升华。升华有三个层次:
最低的层次就是建立一个典型的程序库,供今后再用。若程序复杂,还可建一些功能块,或子程序,以便以后引用。
其次,要总结出有效算法。如单按钮起停程序库等。
最高层次的升华是把经验上升到理论的高度,为丰富PLC程序设计理论作贡献。我想,随着PLC使用的普及与提高,是会有越来越多从经验中升华出来的,而又能用以指导实践的PLC编程理论的。
3、经验应用
经验积累、经验升华都是为了应用。经验应用有三方面:
1)用作工程设计模板。设计新系统时,选用一个或几个与现设计工程类似的,已取得成功的工程,作样板进行设计。这既可减轻设计的工作量,又增加设计的成功率。这也是信息可重用的一大好处。
2)用作程序设计参考。在无成功的工程可作样板时,在新设计的逻辑中,仍有相当一部分控制逻辑,可采用或借用已有典型逻辑,这也可减少设计的工作量,增加设计的成功率。
3)用作算法设计参考。在既无样板可参照,又无典型可采用时,还可运用过去的一些成功的算法。
经验是宝贵的,但是经验特别是个人经验,总是有限的。所以,经验的应用也还要与编程理论相结合。
 楼主| 发表于 2012-8-8 23:06:25 | 显示全部楼层
如何学习别人的PLC程序  
----  


 
1 收集资料。在收集资料时不仅要收集程序还要收集程序所附带的工艺流程及I/O分配表。
2 程序分类。在收集到前人的程序后,首先加以分类。以不同品牌的程序分类——再以不同功能细分。
3 选择程序加以理解。分类完成后就是慢慢的“消化”程序了。首先选择自己熟悉的PLC程序或是自己将要用到的程序样例下手,这样理解起来比较容易。
4 对于有工艺流程及I/O分配表的程序进行理解。
1) 了解程序的工艺流程。
2) I/O分配。把I/O分配表中的说明加在程序的注释中。
3) 理解中间位。在程序设计时肯定会用到诸多的中间位做转接,然后搞清楚每一步或每一网络所对应的中间位的功能,在程序中加以注释。
4) 理解定时器。程序中定时器的功能要清楚,特别是有时间日期控制的,定时器的功能是比较重要的。其意义也要记录下来。
5) 理解计数器。
6) 理解陌生指令。在“消化”别人程序的过程中,不勉会看到一些自己没用过或不熟悉的指令,这也是自己要重点理解的对象,要准备一份电子指令手册随时查找,并在程序中记录。这才是自己要学习与进步的地方。
5、 对于没有任何说明的程序进行理解。
1) 指令应用。对此类程序主要是注意程序中的指令应用。把指令截取下来,以指令名称为为文件名另存在文件夹中。
2) 分系统另存。对于能理解并能整理成系统程序加以另存,比如说程序中的时间系统、PID系统等等的程序。
3) 所有的PLC指令都是大同小异的,当以后工作中能应用到的部分可以就地取材,举一反三。
更重要的是要了解设备的工艺,只有熟悉了产品和掌握了程序的基本编写方法,才能得心应手!!
 楼主| 发表于 2012-8-8 23:06:41 | 显示全部楼层
PLC基础学习方法论谈  
----  


 


学习PLC入门方法其实主要是两点,1.选择一个PLC, 2边学边练

一、问题提出。
可编程控制器技术最主要是应用于自动化控制工程中,如何综合地运用前面学过知识点,根据实际工程要求合理组合成控制系统,
在此介绍组成可编程控制器控制系统的一般方法。
二、可编程控制器控制系统设计的基本步骤
1 .系统设计的主要内容
( 1 )拟定控制系统设计的技术条件。技术条件一般以设计任务书的形式来确定,它是整个设计的依据;
( 2 )选择电气传动形式和电动机、电磁阀等执行机构;
( 3 )选定 PLC 的型号;
( 4 )编制 PLC 的输入 / 输出分配表或绘制输入 / 输出端子接线图;
( 5 )根据系统设计的要求编写软件规格说明书,然后再用相应的编程语言(常用梯形图)进行程序设计;
( 6 )了解并遵循用户认知心理学,重视人机界面的设计,增强人与机器之间的友善关系;
( 7 )设计操作台、电气柜及非标准电器元部件;
( 8 )编写设计说明书和使用说明书;
根据具体任务,上述内容可适当调整。
2 . 系统设计的基本步骤
可编程控制器应用系统设计与调试的主要步骤,如图 1 所示。
 
图 1 可编程控制器应用系统设计与调试的主要步骤
( 1 )深入了解和分析被控对象的工艺条件和控制要求
a .被控对象就是受控的机械、电气设备、生产线或生产过程。
b
.控制要求主要指控制的基本方式、应完成的动作、自动工作循环的组成、必要的保护和联锁等。对较复杂的控制系统,还可将控制任务分成几个独立部分,这种可化繁为简,有利于编程和调试。

( 2 )确定 I/O 设备
根据被控对象对 PLC
控制系统的功能要求,确定系统所需的用户输入、输出设备。常用的输入设备有按钮、选择开关、行程开关、传感器等,常用的输出设备有继电器、接触器、指示灯、电磁阀等。

( 3 )选择合适的 PLC 类型
根据已确定的用户 I/O 设备,统计所需的输入信号和输出信号的点数,选择合适的 PLC 类型,包括机型的选择、容量的选择、 I/O
模块的选择、电源模块的选择等。
( 4 )分配 I/O 点
分配 PLC 的输入输出点,编制出输入 / 输出分配表或者画出输入 / 输出端子的接线图。接着九可以进行 PLC
程序设计,同时可进行控制柜或操作台的设计和现场施工。
( 5 )设计应用系统梯形图程序
根据工作功能图表或状态流程图等设计出梯形图即编程。这一步是整个应用系统设计的最核心工作,也是比较困难的一步,要设计好梯形图,首先要十分熟悉控制要求,同时还要有一定的电气设计的实践经验。

( 6 )将程序输入 PLC
当使用简易编程器将程序输入 PLC
时,需要先将梯形图转换成指令助记符,以便输入。当使用可编程序控制器的辅助编程软件在计算机上编程时,可通过上下位机的连接电缆将程序下载到
PLC 中去。
( 7 )进行软件测试
程序输入 PLC 后,应先进行测试工作。因为在程序设计过程中,难免会有疏漏的地方。因此在将 PLC
连接到现场设备上去之前,必需进行软件测试,以排除程序中的错误,同时也为整体调试打好基础,缩短整体调试的周期。
( 8 )应用系统整体调试
在 PLC
软硬件设计和控制柜及现场施工完成后,就可以进行整个系统的联机调试,如果控制系统是由几个部分组成,则应先作局部调试,然后再进行整体调试;如果控制程序的步序较多,则可先进行分段调试,然后再连接起来总调。调试中发现的问题,要逐一排除,直至调试成功。

( 9 )编制技术文件
系统技术文件包括说明书、电气原理图、电器布置图、电气元件明细表、 PLC 梯形图。
三、 PLC 硬件系统设计
1 . PLC 型号的选择
在作出系统控制方案的决策之前,要详细了解被控对象的控制要求,从而决定是否选用 PLC 进行控制。
在控制系统逻辑关系较复杂(需要大量中间继电器、时间继电器、计数器等)、工艺流程和产品改型较频繁、需要进行数据处理和信息管理(有数据运算、模拟量的控制、PID 调节等)、系统要求有较高的可靠性和稳定性、准备实现工厂自动化联网等情况下,使用 PLC 控制是很必要的。
目前,国内外众多的生产厂家提供了多种系列功能各异的 PLC
产品,使用户眼花缭乱、无所适从。所以全面权衡利弊、合理地选择机型才能达到经济实用的目的。一般选择机型要以满足系统功能需要为宗旨,不要盲目贪大求全,以免造成投资和设备资源的浪费。机型的选择可从以下几个方面来考虑。

( 1 )对输入 / 输出点的选择
盲目选择点数多的机型会造成一定浪费。
要先弄清除控制系统的 I/O 总点数,再按实际所需总点数的 15 ~ 20 %留出备用量(为系统的改造等留有余地)后确定所需 PLC
的点数。
另外要注意,一些高密度输入点的模块对同时接通的输入点数有限制,一般同时接通的输入点不得超过总输入点的 60 %; PLC
每个输出点的驱动能力( A/ 点)也是有限的,有的 PLC 其每点输出电流的大小还随所加负载电压的不同而异;一般 PLC
的允许输出电流随环境温度的升高而有所降低等。在选型时要考虑这些问题。
PLC 的输出点可分为共点式、分组式和隔离式几种接法。隔离式的各组输出点之间可以采用不同的电压种类和电压等级,但这种 PLC
平均每点的价格较高。如果输出信号之间不需要隔离,则应选择前两种输出方式的 PLC 。
( 2 )对存储容量的选择
对用户存储容量只能作粗略的估算。在仅对开关量进行控制的系统中,可以用输入总点数乘 10 字 / 点+输出总点数乘 5 字 /
点来估算;计数器 / 定时器按( 3 ~ 5 )字 / 个估算;有运算处理时按( 5 ~ 10 )字 / 量估算;在有模拟量输入 /
输出的系统中,可以按每输入 / (或输出)一路模拟量约需( 80 ~ 100 )字左右的存储容量来估算;有通信处理时按每个接口 200
字以上的数量粗略估算。最后,一般按估算容量的 50 ~ 100 %留有裕量。对缺乏经验的设计者,选择容量时留有裕量要大些。
( 3 )对 I/O 响应时间的选择
PLC 的 I/O 响应时间包括输入电路延迟、输出电路延迟和扫描工作方式引起的时间延迟(一般在 2 ~ 3
个扫描周期)等。对开关量控制的系统, PLC 和 I/O 响应时间一般都能满足实际工程的要求,可不必考虑 I/O
响应问题。但对模拟量控制的系统、特别是闭环系统就要考虑这个问题。
( 4 )根据输出负载的特点选型
不同的负载对 PLC
的输出方式有相应的要求。例如,频繁通断的感性负载,应选择晶体管或晶闸管输出型的,而不应选用继电器输出型的。但继电器输出型的 PLC
有许多优点,如导通压降小,有隔离作用,价格相对较便宜,承受瞬时过电压和过电流的能力较强,其负载电压灵活(可交流、可直流)且电压等级范围大等。所以动作不频繁的交、直流负载可以选择继电器输出型的
PLC 。
( 5 )对在线和离线编程的选择
离线编程示指主机和编程器共用一个 CPU ,通过编程器的方式选择开关来选择 PLC 的编程、监控和运行工作状态。编程状态时, CPU
只为编程器服务,而不对现场进行控制。专用编程器编程属于这种情况。在线编程是指主机和编程器各有一个 CPU ,主机的 CPU
完成对现场的控制,在每一个扫描周期末尾与编程器通信,编程器把修改的程序发给主机,在下一个扫描周期主机将按新的程序对现场进行控制。计算机辅助编程既能实现离线编程,也能实现在线编程。在线编程需购置计算机,并配置编程软件。采用哪种编程方法应根据需要决定。

( 6 )据是否联网通信选型
若 PLC 控制的系统需要联入工厂自动化网络,则 PLC 需要有通信联网功能,即要求 PLC 应具有连接其他 PLC 、上位计算机及
CRT 等的接口。大、中型机都有通信功能,目前大部分小型机也具有通信功能。
( 7 )对 PLC 结构形式的选择
在相同功能和相同 I/O
点数据的情况下,整体式比模块式价格低。但模块式具有功能扩展灵活,维修方便(换模块),容易判断故障等优点,要按实际需要选择 PLC
的结构形式。
2 .分配输入 / 输出点
一般输入点和输入信号、输出点和输出控制是一一对应的。
分配好后,按系统配置的通道与接点号,分配给每一个输入信号和输出信号,即进行编号。
在个别情况下,也有两个信号用一个输入点的,那样就应在接入输入点前,按逻辑关系接好线(如两个触点先串联或并联),然后再接到输入点。
( 1 )确定 I/O 通道范围
不同型号的 PLC ,其输入 / 输出通道的范围是不一样的,应根据所选 PLC
型号,查阅相应的编程手册,决不可“张冠李戴”。必须参阅有关操作手册。
( 2 )部辅助继电器
内部辅助继电器不对外输出,不能直接连接外部器件,而是在控制其他继电器、定时器 / 计数器时作数据存储或数据处理用。
从功能上讲,内部辅助继电器相当于传统电控柜中的中间继电器。
未分配模块的输入 / 输出继电器区以及未使用 1 : 1
链接时的链接继电器区等均可作为内部辅助继电器使用。根据程序设计的需要,应合理安排 PLC 的内部辅助继电器
 楼主| 发表于 2012-8-8 23:06:54 | 显示全部楼层
PLC基础知识简介  
----  


 

目前,世界上有200多厂家生产300多品种PLC产品,应用在汽车(23%)、粮食加工(16.4%)、化学/制药(14.6%)、金属/矿山(11.5%)、纸浆/造纸(11.3%)等行业。为了使各位初学者更方便地了解PLC,本文对PLC的发展、基本结构、配置、应用等基本知识作一简介,以期对各位网友有所帮助。

一、PLC的发展历程 在工业生产过程中,大量的开关量顺序控制,它按照逻辑条件进行顺序动作,并按照逻辑关系进行连锁保护动作的控制,及大量离散量的数据采集。传统上,这些功能是通过气动或电气控制系统来实现的。1968年美国GM(通用汽车)公司提出取代继电气控制装置的要求,第二年,美国数字公司研制出了基于集成电路和电子技术的控制装置,首次采用程序化的手段应用于电气控制,这就是第一代可编程序控制器,称Programmable Controller(PC)。 个人计算机(简称PC)发展起来后,为了方便,也为了反映可编程控制器的功能特点,可编程序控制器定名为Programmable Logic Controller(PLC),现在,仍常常将PLC简称PC。 PLC的定义有许多种。国际电工委员会(IEC)对PLC的定义是:可编程控制器是一种数字运算操作的电子系统,专为在工业环境下应用而设计。它采用可编程序的存贮器,用来在其内部存贮执行逻辑运算、顺序控制、定时、计数和算术运算等操作的指令,并通过数字的、模拟的输入和输出,控制各种类型的机械或生产过程。可编程序控制器及其有关设备,都应按易于与工业控制系统形成一个整体,易于扩充其功能的原则设计。 上世纪80年代至90年代中期,是PLC发展最快的时期,年增长率一直保持为30~40%。在这时期,PLC在处理模拟量能力、数字运算能力、人机接口能力和网络能力得到大幅度提高,PLC逐渐进入过程控制领域,在某些应用上取代了在过程控制领域处于统治地位的DCS系统。 PLC具有通用性强、使用方便、适应面广、可靠性高、抗干扰能力强、编程简单等特点。PLC在工业自动化控制特别是顺序控制中的地位,在可预见的将来,是无法取代的。

二、PLC的构成  从结构上分,PLC分为固定式和组合式(模块式)两种。固定式PLC包括CPU板、I/O板、显示面板、内存块、电源等,这些元素组合成一个不可拆卸的整体。模块式PLC包括CPU模块、I/O模块、内存、电源模块、底板或机架,这些模块可以按照一定规则组合配置。

三、CPU的构成  CPU是PLC的核心,起神经中枢的作用,每套PLC至少有一个CPU,它按PLC的系统程序赋予的功能接收并存贮用户程序和数据,用扫描的方式采集由现场输入装置送来的状态或数据,并存入规定的寄存器中,同时,诊断电源和PLC内部电路的工作状态和编程过程中的语法错误等。进入运行后,从用户程序存贮器中逐条读取指令,经分析后再按指令规定的任务产生相应的控制信号,去指挥有关的控制电路。  CPU主要由运算器、控制器、寄存器及实现它们之间联系的数据、控制及状态总线构成,CPU单元还包括外围芯片、总线接口及有关电路。内存主要用于存储程序及数据,是PLC不可缺少的组成单元。  在使用者看来,不必要详细分析CPU的内部电路,但对各部分的工作机制还是应有足够的理解。CPU的控制器控制CPU工作,由它读取指令、解释指令及执行指令。但工作节奏由震荡信号控制。运算器用于进行数字或逻辑运算,在控制器指挥下工作。寄存器参与运算,并存储运算的中间结果,它也是在控制器指挥下工作。 CPU速度和内存容量是PLC的重要参数,它们决定着PLC的工作速度,IO数量及软件容量等,因此限制着控制规模。

四、I/O模块  PLC与电气回路的接口,是通过输入输出部分(I/O)完成的。I/O模块集成了PLC的I/O电路,其输入暂存器反映输入信号状态,输出点反映输出锁存器状态。输入模块将电信号变换成数字信号进入PLC系统,输出模块相反。I/O分为开关量输入(DI),开关量输出(DO),模拟量输入(AI),模拟量输出(AO)等模块。  开关量是指只有开和关(或1和0)两种状态的信号,模拟量是指连续变化的量。常用的I/O分类如下:  开关量:按电压水平分,有220VAC、110VAC、24VDC,按隔离方式分,有继电器隔离和晶体管隔离。  模拟量:按信号类型分,有电流型(4-20mA,0-20mA)、电压型(0-10V,0-5V,-10-10V)等,按精度分,有12bit,14bit,16bit等。  除了上述通用IO外,还有特殊IO模块,如热电阻、热电偶、脉冲等模块。  按I/O点数确定模块规格及数量,I/O模块可多可少,但其最大数受CPU所能管理的基本配置的能力,即受最大的底板或机架槽数限制。

五、电源模块  PLC电源用于为PLC各模块的集成电路提供工作电源。同时,有的还为输入电路提供24V的工作电源。电源输入类型有:交流电源(220VAC或110VAC),直流电源(常用的为24VAC)。

六、底板或机架  大多数模块式PLC使用底板或机架,其作用是:电气上,实现各模块间的联系,使CPU能访问底板上的所有模块,机械上,实现各模块间的连接,使各模块构成一个整体。

七、PLC系统的其它设备  1、编程设备:编程器是PLC开发应用、监测运行、检查维护不可缺少的器件,用于编程、对系统作一些设定、监控PLC及PLC所控制的系统的工作状况,但它不直接参与现场控制运行。小编程器PLC一般有手持型编程器,目前一般由计算机(运行编程软件)充当编程器。  2、人机界面:最简单的人机界面是指示灯和按钮,目前液晶屏(或触摸屏)式的一体式操作员终端应用越来越广泛,由计算机(运行组态软件)充当人机界面非常普及。  3、输入输出设备:用于永久性地存储用户数据,如EPROM、EEPROM写入器、条码阅读器,输入模拟量的电位器,打印机等。 

八、PLC的通信联网  依靠先进的工业网络技术可以迅速有效地收集、传送生产和管理数据。因此,网络在自动化系统集成工程中的重要性越来越显著,甚至有人提出"网络就是控制器"的观点说法。  PLC具有通信联网的功能,它使PLC与PLC 之间、PLC与上位计算机以及其他智能设备之间能够交换信息,形成一个统一的整体,实现分散集中控制。多数PLC具有RS-232接口,还有一些内置有支持各自通信协议的接口。  PLC的通信,还未实现互操作性,IEC规定了多种现场总线标准,PLC各厂家均有采用。  

对于一个自动化工程(特别是中大规模控制系统)来讲,选择网络非常重要的。首先,网络必须是开放的,以方便不同设备的集成及未来系统规模的扩展;其次,针对不同网络层次的传输性能要求,选择网络的形式,这必须在较深入地了解该网络标准的协议、机制的前提下进行;再次,综合考虑系统成本、设备兼容性、现场环境适用性等具体问题,确定不同层次所使用的网络标准
 楼主| 发表于 2012-8-8 23:07:11 | 显示全部楼层
西门子 S7-300 PLC 从入门到精通的100个经典问题  
---- 新手必读  


 

  
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 堆栈中,会为每个数据块保留相同个数的字节,作为存放每个块所拥有的静态或局部数据。
当某个块终止时,那么它的空间随之也被重新释放出来。 指针总是指向当前打开块的第一个字节。

31:在CPU经过完全复位后是否运行时间计数器也被复位?
使用S7-300时,带硬件时钟(内置的 “实时时钟”)和带软件时钟的 CPU 之间有区别。对于那些无后备电池的软件时钟的 CPU,运行时间计数器在 CPU 被完全复位后其最后值被删除。而对于那些有后备电池的硬件时钟的 CPU,运行时间计数器的最后值在 CPU 被完全复位后被保留下来。同样, CPU 318 和所有的 S7-400 CPU 的运行时间计数器在 CPU 被完全复位后其最后值被保留。

32:如何把不在同一个项目里的一个S7 CPU组态为我的S7 DP主站模块的DP从站?
缺省情况下, 在STEP 7里只可以把一个S7 CPU组态为从站,如果说该站是在同一个项目中的话。该站然后在“PROFIBUS-DP > 已经组态的站”下的硬件目录里作为“CPU 31x-2 DP”出现。用这种途径,可以设置起 DP 主站与 DP 从站间的链接。
还存在一个选项,可把一个与主站不在同一个项目里的S7 CPU组态为从站。进行如下:
按常规组态DP从站。
从网上下载要用作从站的S7-300 CPU的GSD文件。该文件位于客户支持网址的“PROFIBUS GSD 文件 / SIMATIC”下。
打开SIMATIC Manager 和硬件配置。
打开“选项 ; 安装新的 GSD...”,把刚下载的 GSD 文件插入硬件目录 。 (注意:此过程中在 HW Config 中无须打开任何窗口)
通过“选项; 更新目录”来更新硬件目录。 <
现在可以组态你的 DP 主站。将可以在 “PROFIBUS-DP > 更多现场设备 > SPS” 下发现作为从站的该 S7-300 CPU 。
注意:如果是手动来结合该 DP 从站, 要确保总线参数,该 DP 从站的 PROFIBUS 地址 和它的 I/O 组态在两个项目里必须相同。

33:无备用电池情况下断电的影响与完全复位一样吗?
不一样。在CPU被完全复位的情况下,其硬件配置信息被删除(MPI地址除外),程序被删除, 剩磁存储器也被清零。
在无备用电池和存储卡的情况下关电,硬件配置信息(除了MPI地址) 和程序被删除。然而,剩磁存储器不受影响。如果在此情况下重新加载程序,则其工作时采用剩磁存储器的旧值。比方说,这些值通常来自前 8 个计数器。如果不把这一点考虑在内,会导致危险的系统状态。
建议:无备用电池和存储卡的情况下断电后,总是要做一下完全复位。

34:以将 2 线制传感器连接到紧凑型CPU的模拟输入端吗?
可以将 2 线制和 4 线制的传感器连接到CPU 300C的模拟输入端。使用一个 2 线制传感器时,在硬件组态中将“I = 电流”设置为测量类型,与 4 线制传感器的设置一样。
注意事项:请注意紧凑型CPU仅支持有源传感器( 4 线制传感器)。如果使用无源传感器( 2 制传感器),必须使用外部电源。
警告:请注意所允许的最大输入电流。2 线制传感器在出现短路时可能会超出最大允许电流。技术数据中规定的最大允许电流是50mA(破坏极限)。对于这种情况(例如,对 2 线制传感器加电流限制或与传感器串联一个PTC热敏电阻),确保提供足够保护。

35:SM322-1HH01也能在负载电压为交流 24 V的情况下工作吗?
是的,您也可以在负载电压为交流 24 V的情况下使用SM322-1HH01。

36:要确保SM322-1HF01 接通最小需要多大的负载电压和电流?
SM322-1HF01 继电器模块需要 17 V和 8 mA才能确保开闭正常。对于触点的寿命来说,这样的值比手册上提供的这个模块的值(10 V和 5 mA)更好。手册的规定值应该认为是最低要求值。

37:需要为哪些24V数字量输入模块(6ES7 321-xBxxx- ...)连接电源?
24V数字量输入模块的电源插针连接 (L+ / M) 。

38:在 ET200M 里是否也能使用 SM321 模块(DI16 x 24V)?
模块 SM321 (MLFB 6ES7 321-7BH00-0AB0) 也可在 ET200M 里使用。其中 CPU 31x-2DP 作为 DP 主站或者是通讯处理器 CP CP342-5 作为 DP 主站。同样该模块可以通过 ET200M 和 S7-400 通讯处理器 CP443-5 连接到一个S7-400 CPU。

39:SM323数字卡所占用的地址是多少?
SM323模块有 16 位类型(6ES7 323-1BL00-0AA0)和 8 位类型(6ES7 323-1BH00-0AA0)两种。对于 16 位类型的模块,输入和输出占用“X”和“X+1” 两个地址。如果 SM323 的基地址为 4 (即 X=4; 插槽为 5),那么输入就被赋址在地址 4 和 5 下面, 输出的地址同样也被赋址在地址 4 和 5 下面。在模块的接线视图中,输入字节“X”位于左边的顶部,输出字节“X”在右边的顶部。
对于 8 位类型的模块,输入和输出各占用一个字节,它们有相同的字节地址。若用固定的插槽赋址,SM323 被插入槽 4, 那么输入地址为I 4.0 至 I 4.7,输出地址为 Q 4.0 至 Q 4.7。

40:在不改变硬件配置的情况下,能用SM321-1CH20 代替SM321-1CH80 吗?
SM321-1CH20 和SM321-1CH80 模块的技术参数是相同的。区别仅在SM321-1CH80 可以应用于更广泛的环境条件。因此您无需更改硬件配置。

41:进行I/O的直接访问时,必须注意什么?
需要注意在一个S7-300组态中,如果进行跨越模块的I/O直接读访问(用该命令一次读取几个字节),那么就会读到不正确的值。 可以通过hardware中查看具体的地址。

42:SM321模块是否需要连接到 DC 24V 上?
不需要,如果是 MLFB 为 6ES7 321-1BH02-0AA0 的 SM 321 模块,就不再需要连接 DC 24V 了。

43:在 STEP 7 硬件组态中如何规划模拟模块 SM374?在硬件目录中如何找到此模块?
   模拟模块SM374可用于三种模式中:作为 16 通道数字输入模块,作为 16 通道数字输出模块,作为带 8 个输入和 8 个输出的混合数字输入/输出模块。
 现在把SM374按照您需要模拟的模块来组态,就是说;
   如果把 SM 374 用作为一个 16 通道输入模块,则组态一个 16 通道输入模块 - 推荐使用:SM 321: 6ES7321-1BH01-0AA0,
如果把 SM 374 用作为一个 16 通道输出模块,则组态一个 16 通道输出模块 - 推荐使用: SM 322: 6ES7322-1BH01-0AA0,
  如果把 SM 374 用作为一个混合输入/输出模块,则组态一个混合输入/输出模块( 8 个输入,8 个输出) - 推荐使用:SM 323: 6ES7323-1BH01-0AA0。

44:当测量电流时,出现传感器短路的情况,模块6ES7 331-1KF0.-0AB0的模拟量输入I+是否会被破坏?
  当测量电流时,出现传感器短路的情况,模块6ES7 331-1KF0.-0AB0的模拟输入 I+不会被破坏。该模块具有内置的过流保护功能。模块中每个50欧姆的电阻器前面具有一个PTC元件,用于防止模块的输入通道被破坏。
请注意,输入电压允许的长期最大值为12V,短暂(最多1秒)值为30V。

45:如果切断CPU,则 2 线制测量变送器是否继续供电?
   如果变送器模块插入位置“D”,且模块在引脚 1 和引脚 20 上由外部电压供电,则 2 线测量变送器继续供电。即使切断CPU,其供电电流仍维持不变。

46:用S7-300模拟量输入模块测量温度(华氏)时,可以使用模块说明文档中列出的绝对误差极限吗?
   不可以直接使用指定的误差极限。基本误差和操作误差都以绝对温度和摄氏温度说明。必须乘以系数1.8将其转换为华氏温度单位。
例:S7-300 AI 8 x RTD:指定的温度输入操作误差是+/-1.0摄氏度。当以华氏温度测量时,可接受的最大误差是+/-1.8华氏度。

47:为什么用商用数字万用表在模拟输入块上不能读出用于读取阻抗的恒定电流?
   几乎所有的S5/S7 模拟输入设备仍然以复杂的方式工作,即,所有的通道都依次插到仅有的一个AD转换器上。该原理也适用于读取阻抗所必需的恒定电流。因此,要读的流过电阻的电流仅用于短期读数。对于有一个选定接口抑制"50Hz"和 8 个参数化通道的SM331-7KF02-0AB0 ,这意味着电流将会约每180ms流过一次,每次有20ms可读取阻抗。

48:为什么S7-300 模拟输出组的电压输出超出容差?端子S+和S-作何用途?
  下列描述适用于所有模拟输出模块SM 332:
  当使用模拟输出模块 SM 332 时,必须注意返回输入S+和S-的分配。它们起补偿性能阻抗的目的。当用独立的带有S+ 和S-的电线连接执行器的两个触点时,模拟输出会调节输出电压,以便使动作机构上实际存在的电压为所期望的电压。
   如果想要获得补偿,那么执行器必须用 4 根电线连接。这意味着对于第一个通道,需要:
   输出电压通过针脚 3 和针脚 6 连接到执行器。
   分配执行器的针脚 4 和针脚 5。
   如果不想获得补偿,只需在前面的开关上简单的跨接针脚3-4和针脚5-6。
   注意事项:因为打开的传感器端子 (S+ 和S-),输出电压被调节到最大值 140 mV (用于 10V)。g 对于此分配,无法保持0.5 %的电压输出使用误差限制。

49:如何连接一个电位计到6ES7 331-1KF0-0AB0?
电位计的采样端和首端连接到 M+,末端连接 M-,并且 S- 和M-连接到一起。
注意: 最大的可带电阻是6K,如果电位计支持直接输出一个可变的电压,那么电位计的首端应该连接V+,M端连接M-。

50:如何把一个PT100温度传感器连接到模拟输入模块SM331?
PT100热电阻随温度的不同其电阻值随之变化。如果有一恒定电流流经该热电阻,该热电阻上电压的下降随温度而变化。恒定电流加在接点Ic+ 和 Ic-上。模拟模块SM331在M+和M-电测定电流的变化。通过测定电压就可以确定出温度。
PT100 到模拟输入组有三类连接:4 线连接可得到最精确的测定值。
* 注意:
1)3 线连接用的公式仅表明了模拟输入模块 SM331 (MLFB 号为6ES7 331-7Kxxx-0AB0)b " 的实际测定过程。
2)在 S7-300 系列中,存在一些通过多次测定的模拟输入端。它们规定出公共返回线的线电阻并作数学补偿。所获精确度几乎与 4 线连接可比美。这样模块的一个例子就是SM331(MLFB号6ES7 331-7PF00-0AB0)。
3)所给出的公式仍然适用于主要的物理关系,但并不包含确定 PT100 电阻的有效测定过程。
 楼主| 发表于 2012-8-8 23:07:28 | 显示全部楼层
51:可以将 HART 测量转换器连接到 SIMATIC S7-300 系列常规的模拟输入模块吗?
  如果不需要 HART 测量转换器的其它 HART 特性,还可以使用其它 S7-300 模拟输入模块。例如,可以使用模块 6ES7 331-7KF0x-0AB0 或一个带隔离的 4 通道模块(如 6ES7 331-7RD00-0AB0)。为此,将积分时间要设置为 16.66ms,20ms 或 100ms。对于连接到手持式设备,或与手持式设备通信,电路中必须串接一个 250-Ohm 的电阻。
   注意事项:如果要通过控制器(比如说,SIMATIC PDM)来编程 HART 测量转换器,必须使用一个相应的 HART 模块(例如,6ES7 331-7TB00-0AB0 或 6ES7 332-5TB00-0AB0)。

52:如何避免SM335模块中模拟输入的波动?
  下列接线说明适于下列MLFB的模拟输入/输出模块: 6ES7335-7HG00-0AB0 、6ES7335-7HG01-0AB0
   检查是否正在使用的安装在绝缘机架上的未接地传感器或检查您的传感器是否接地。
  安装在绝缘机架上的传感器:尽可能通过最短路径(可能的话,直接连接到前端的连接器)将接地端子 Mana (针6)连接到测量通道M0(针10),M1(针12),M2(针14)和M 3(针16)以及中央接地点(CGP)。
  接地传感器:确保传感器有良好的等电位连接。然后把从 M 到 Mana和到中央接地点的连接隔离起来。请将屏蔽层置于两侧。

53:在S7-300F中,是否可以在中央机架上把错误校验和标准模块结合在一起使用?
   在S7-300F的中央机架上,可以混合使用防错和非防错(标准)数字E/A模块。为此,就像在ET200M中一样,需要一个隔离模块(MLFB: 6ES7195-7KF00-0XA0),用来在中央和扩展机架中隔离防错模块和标准模块。
 请遵守以下安装原则:标准模块(IM、SM、FM、CP)必须插到隔离模块左侧的插槽中,防错数字E/A模块必须插到隔离模块右侧的插槽中。

54:可以将来自防爆区 0 或防爆区 1 的传感器 / 执行器直接连接到 S7-300 Ex(i) 模块吗?
  不能连接来自防爆区 0 的传感器/执行器。但可以直接连接来自防爆区 1 的传感器/执行器。
   Ex(i) 模块是按照 【EEx ib】 IIC 测试的。因此,模块上有两道防爆屏障。然而,必须获得【EEx ia】认可才能用来自防爆区 0的传感器 /执行器。(模块上将应该有三道防爆屏障)。

55:在SIMATIC PCS 7 中使用FM 355 或者FM 355-2 要特别注意什么?
   举个例子,如果您想在一个冗余的ET 200M站中使用FM 355 或者FM 355-2 ,那么请注意以下的重要事项:
有两个功能块可用于连接FM 355。举个例子,如果需要使用“运行过程中更换模块” (热插拔)功能,您可以使用订货号为 6ES7 153-2BA00-0XB0 的IM 153-2 HF 接口模块的高级特性。在这种情况下,当使用“硬件配置”软件进行组态时,您必须激活“运行过程中更换模块”( 热插拔)功能。IM 153-2 和所有的SM/FM/CP 都要插在激活的总线模块上 (订货号 6ES7 195-7Hxxx-0XA0)。

56:将第一个FM 352-5 的输出与第二个FM 352-5 的输入直接相连时,有哪些注意事项?
   如果要将两个FM352-5 互连,在 6ES7 352-5AH10-0AE0(P 型沉没输出)上即可实现。
   6ES7 352-5AH00-0AE0 有 M 型沉没输出,该输出只有在每个输出端先加一个插拔电阻时才可用,推荐插拔电阻的规格: 2,2 kOhm / 0,5 W. 确保开关盒内有短路连接。此种情况下的操作频率可高达 100 kHz。

57:可以在不用PG的情况下更换FM353/FM354吗?
   可以。FM353 (MLFB No. 6ES7 353-1AH01-0AE0)和FM354 (MLFB No. 6ES7 354-1AH01-0AE0)可以不用PG就进行更换。
   要求:使用组态包FM353 V2.1或组态包FM354 V2.1以及STEP 7版本V3.1或更高版本。
   步骤:当完成了FM和系统的启动后,必须创建一个系统数据块(SDB >=1000)并将它储存在 PG 上。在这个SDB中储存FM的全部参数化数据(DB/横移程序,机器数据,递增尺寸表等)。 把此SDB传送到 CPU 或者传送到 CPU 的存储卡上。

58:在 FM 350-2 上如何通过访问 I/O 直接读取计数值和测量值?
   FM 350-2 允许最多 四个计数值或测量值直接显示在模块I/O上。可通过使用“指定通道”功能来定义哪个单个测量值要显示在 I/O 区。根据计数值或测量值的大小,必须在“用户类型”中将数据格式参数化为“Word”或“Dword”。如果参数化为“Dword”,每个“用户类型”只能有一个计数值或测量值。如果参数化为“Word”,可以读进两个值。在用户程序中,命令 L PIW用于 Word 访问,L PID用于 Dword 访问。

59: FM357-2 用绝对编码器时应注意什么?
   FM357-2的固件版本为V3.2/V3.3在下列情况下绝对编码器的采样值可能会不正确, FM357-2固件版本为V3.4时这些问题将被解决。
1) FM357-2启动失败。例如,在启动窗口中定义的时间内掉电。
2) FM357-2在运行中拔插编码器的电缆。
3) 模拟的情况下。例如,FM357-2 在无驱动的情况下准备运行。

60:如何把一个初始值快速下载进计数器组 FM350-1 或 FM450-1 中?
   对于有些应用场合,重要的是,当达到某个比较值时要尽快地把计数器复位为初始值。此外,通常在复位时需要进行一系列计算,以确定下一个比较值(以便优化原料的交点)。没有标准功能FC CNT_CTRL也可以选择进行一次复位。 <
  为了快速把计数器复位,如下进行来组态计数器: 在计数器模块的“属性”对话框中的“基本参数”区内,将选项 生成中断设成“是”,然后将中断选择设成“过程”。这样,在复位时会生成一个中断。 在“输出”参数标志中组态数字输出DQ0,以便在达到比较值时激活它。 在“输入”参数标志中的“设置计数器”域中,设置选项“多个”。
注意事项:在关联通道数据块中,必须将位 DBX 27.0 或 DBX 27.1 ( CTRL_DQ0) 设置为 1,以便使设置按正确的方向进行。在“中断释放”参数标志中,选择选项“设置计数器”,以便在数字输入 SET处出现一个上升沿时触发该中断。 功能模块 FM 350-1 / FM 450-1 的数字输入 I2是用于把计数器重置为初始值的。该输入与数字输出 Q0 相连接(同 FM 350-1 / FM 450-1)。
注意事项:在关联通道的数据块中,必须预先将数据双字DBD 14(LOAD_VAL)设置为初始值(如 L#0)。数据双字 DBD18 (CMP_V1)必须设置成比较值。必须通过在 FC 上置相应的触发位一次来用 FC CNT_CTRL 把这些值传送到 FM 去。

61:为什么在FM350-1中选24V编码器,启动以后,SF灯常亮,FM350-1不能工作?
   要检查一下,首先在软件组态中要选择编码器类型(为24V),再检查一下,FM350-1侧面的跳线开关,因为缺省的开关设置为5V编码器,一般用户没有设置,开机后,SF灯就会常亮
另外,还可以看看在线硬件诊断,可以看看错误产生的原因,是否模板坏了。


62: FM350-1的锁存功能是否能产生过程中断?
FM350-1的锁存功能是不能产生过程中断,但是可以产生过零中断。
FM350-1的装载值必须为零,随者锁存功能的执行(DI的上升沿开始),当前的计数值被储存到另一地址然后置为初始值零,产生过零中断,在OB40中可以读出中断并相应的值。锁存值也可以从FM350-1的硬件组态地址的前4个字节中读出。

63: 在FM350-1中,怎样触发一个比较器输出?
   FM350-1中自带的输出点具有快速性、实时性,不必要经过CPU的映像区处理。输出点一般对应于比较器,首先在硬件组态中定义比较器输出类型,如:输出值为1或为脉冲输出,然后在程序中设置比较值。在FM350-1中,地址在通讯DB(UDT生成)块中为18(比较值1)、22(比较值2),类型为DINT,然后激活输出点28.0(DQ0)、28.1(DQ1),这样比较器就可以工作了。


64:在FM350-2中,工作号的作用是什么?
工作号是S7-300CPU与FM进行通讯的任务号,每次的交换数据只是部分数据交换,而非全部数据,这样可以减少FM的工作负载,工作号又分写工作号和读工作号,例如在FM350-2中指定DB1为通讯数据块,如果把写工作号12写入到DB1.DBB0中,把200写入到DB1.DBD52中,再调用FC3写功能,这样第一个计数器的初始值为200,这里工作号10的任务号是写第一个计数器的初始值,DB1.DBB0为写工作号存入地址,DB1.DBD52为第一个计数器装载地址区,同样读工作号100为读前4路,101为读后4路计数器,读工作号存入地址为DB1.DBB2。 但写任务不能循环写,只能分时写入。

65:如果对于4-20 mA模拟量输入模块来说,小于4 mA后转换的数字量是多少?
  如果小于4ma,那么将会是输出负值,例如 -1对应的是3.9995mA,而1.185 mA 时,这个数值是-4864 (10进制)但是如果小于1.185mA,如果禁止断线检测,这个值是8000(16进制)如果有断线检测,会变成7FFF(16进制)。

66:怎样对模拟量进行标准化和非标准化?
  可以使用以下功能块:
   1.在块FC164中,x和y都是整数。
   2. FC165中x是整数,y是实数。
   3. FC166中x是实数,y是整数。
   4. FC167中x和y都是实数。

67:S7系列PLC之间最经济的通讯方式是什么?
MPI通讯是S7系列PLC之间一种最经济、数据量最小的一种通讯,需要做连接配置的站通过GD通讯,GD通讯适合于S7-300之间,S7-300、S7-400、MPI之间一些固定数据的通讯。不用作连接的MPI通讯适用于S7-300之间、S7-300与400之间、S7-300/400与S7-200 系列PLC之间的通讯,建议在OB35(循环中断100ms)中调用发送块,在OB1(主循环组织块)调用接收块。

68:整个系统掉电后,为什么CPU在电源恢复后仍保持在停止状态?
  整个系统由一个DP主站S7-300/400以及从站组成。而从站通过一个主开关被切断了电源。由于内部的CPU电压缓冲器,CPU 仍继续运行大约50ms到100ms。此阶段里 CPU 识别出所连接的从站的故障。如果没有编程OB86和OB122的话,CPU 就会因为这些有故障的从站而继续保留在停止状态。

69:在点到点通信中,协议 3964(R)和RK 512 之间的区别是什么?
   这两个协议的主要区别在于消息报头和响应消息的不同。使用RK 512,提供有最高的数据完整性,程序 3964(R) 当传送信息数据时,程序 3964(R)将控制字符(安全层)添加到信息数据上。这些控制字符激活通信伙伴,检查数据是否全部接收,是否无错误。
您需要登录后才可以回帖 登录 | 加入工控之家

本版积分规则

QQ|手机版|小黑屋|Archiver|工控之家 ( 鲁ICP备12015736号-1 )

GMT+8, 2024-4-20 13:12 , Processed in 0.084683 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表