
西门子连接电缆6XV1830-0EH10
我买了一本您编写的《给我动手学S7300/400PLC》,在学习书中第74页浮点数数学运算指令应用的时候有点麻烦。我把MD30改成MD1,MD34改成MD2(见下图)。我在仿真的时候在MD1中输入30.0,一按回车键出现11.8953。我按书上的地址来做就没问题了。我想问一下这与MD30改成MD1,MD34改成MD2有关系吗?这些地址可不可以随便改?
下面是我的答复:
MD2的值与程序的执行有关,而MD1中的MB2~MB4取决于MD2的值,因此在MD1中输入一个浮点数后,一按回车键MD1就会变为11.8953。
初学,也一直用CFC进行编程,现在一个412的CPU不支持CFC,只能用梯形图编程,本人对梯形图不是很熟悉,遇到一点小问题,在CFC中,有类似W_BO的块子,其功能是输入一个字输出16位,在梯形图中,如何建立这样的子程序,来进行调用呢?
答:sorry,写习惯了,把L/ T 改成 A /=方法如下(以INT为例):梯形图见附图
A L0.0
随着工业自动化程度的不断提高,可编程序控制器(PLC)正在走入工矿企业的每一个角落,只要有控制要求的场合,就有PLC的应用。PLC常被称为全能“工业电脑”,用它可以方便地对工业现场进行实时控制。在工业电气控制系统中,经常遇到控制常数设定和修改的问题,例如:某加热控制系统加热时间常数的设定和改变问题。PLC改变控制常数的常用方法有两种,其一,通过上位计算机对原程序中控制数据进行修改;其二,利用外部装置输入数据,控制系统运行。即由外设将数据送入PLC,进行数据处理,然后对PLC内部参数进行修改,实现对工业设备的实时控制。第二钟数据输入方法,具有不修改原程序,数据输入方法简单、操作方便,能实现实时控制等优点,不仅适用于计算机设计人员使用,而且还适用于普通操作人员。在电气控制设备上,有着非常广泛的应用,并且许多厂家 PLC产品都具有外部数据输入功能。所以,利用PLC控制技术对外部BCD码数据进行输入,充分发挥工业控制计算机—PLC数值计算和处理能力的编程、控制方法,具有实际应用的推广意义。这里,以SIEMENS公司PLC构成的某加热系统为例,详细、具体地对加热时间常数外部数据输入方法及用户处理程序作以介绍。
1 BCD码数据外部输入应用设计举例
1.1 设计思路
首先介绍SIEMENS(西门子)公司PLC S7—200的物理存储区结构,一般情况下,物理存储区是以字节为单位的,所以存储单元为字节单元,操作数长度是字或双字时,标识符后给出的存储单元参数是字或双字内的最低字节单元号。图1(a)给出了字节、字、双字的相互关系及表示方法。当使用数据宽度为字或双字时,应保证没有生成任何重叠的存储器字节分配,例如,字地址编码应采用MW10、MW12、MW14······等偶数字地址或MW11、 MW13、MW15·······等奇数字地址,由于存储器字MW10占用MB10、MB11两个字节,而MW11则要占用MB11、MB12两字节,存在字节地址重叠单元MB11,所以字地址编码时奇偶不能兼用,以免造成数据读写错误。图1(b)给出数据存储结构,数据的高位用MSB表示,低位用LSB 表示。
其次,以德国SIEMENS(西门子)公司的S7—200 PLC为例。构成加热控制系统,加热时间采用三位十进制数的BCD码拨盘从PLC外部输入。PLC输入/输出接点分配如下表所示:
附表:PLC输入/输出接点地址分配
加热系统的加热元件用PLC输出点Q0.0控制,系统起动按钮由I1.4输入,复位按钮由I1.5输入。
这里选择两个字节的PLC输入映象寄存器IB0和IB1作为外部数据输入端,利用三个BCD码拨盘将外部数据分别置入IB0、IB1两个字节中。每个 BCD码拨盘需用四位PLC输入点,如个位BCD码8421端分别接至PLC的I0.3、I0.2、I0.1、I0.0输入接点,分配PLC的输入接点 IB0的低4位为BCD码的个位数、高4位为BCD码的十位数、IB1的低4位为BCD码的百位数、高4位为无效位。利用传送指令分别将个、十、百位数送入三个内部标志寄存器(或内部变量寄存器)保存,并将送入的十位、百位数分别乘以权10和权100,最后将处理好的个位、十位、百位数相加,运算结果作为加热器的加热时间常数,PLC在用户程序初始化时,将其送入加热时间定时器中,对加热器加热时间进行实时控制,PLC在每次运行开始初始化程序中读取 BCD码拨盘数据。这样采用改变外部拨盘的数据。即可以灵活地改变加热时间。
最后,在图2程序流程中,介绍了外部数据输入处理过程的基本思路。
1.2用户处理程序
用户程序由主程序和初始化子程序组成,根据特殊标志位SMO.1在程序首次扫描时给出的脉冲信号,调用初始化子程序,实现BCD码的数据输入。这样,在其后的扫描周期中不再会调用该程序,这减少了扫描时间且程序更结构化。用户程序说明:(1)程序段一实现子程序调用功能;(2)段二和段三实现加热器加热控制功能,输出继电器Q0.0由I1.4置位、定时器T37或I1.5复位,定时器T37的计时常数由内部标志寄存器MW8置入;(3)段5—段9为 BCD码数据输入、处理子程序。段六、七分别将个位、十位、百位送MW2、6和VW2保存。段八实现十位乘10,百位乘100,运算结果分别送入VD4和 VD8功能,并且将个位、十位、百位数求和运算结果送入MW8作为加热器加热时间。(4)段九为子程序返回。PLC S7-200梯形图程序如图3所示。
设计技巧:是用BCD码拨盘,把加热器的加热时间值置成BCD码数,并用PLC的数据传送指令读入输入映象寄存器,进行运算后,作为控制加热定时器的预置值,从而达到实时控制。
注意事项:首先是应特别熟悉PLC物理寄存器内部结构,以便正确地确定BCD码数据输入位与PLC输入接点的关系,使之与定时器的时间常数相对应。其次,本参考程序在PLC由STOP状态进入RUN状态时读入外部数据,故只能在STOP状态修改BCD拨盘数据。若需在程序运行其间更改数据时,只要将子程序调用条件稍加改动即可。
3 结束语
随着PLC技术在现代工业中的广泛应用,利用外部装置输入、修改控制数据的应用场合越来越多,PLC应用技术和技巧应迅速普及,以不断提高工业控制技术水平,提高劳动生产率,提高国民的生活水平和综合国力。以上,我们探讨的是一种简单而可靠的外部数据输入方法,可供专门从事PLC应用技术研究的工程技术人员参考。
无需借助西门子的Simaticnet 软件,SIDirect DAS Server 可以通过标准的以太网卡访问S7 200, S7 300,S7 400 家族PLC。SIDirect DAServer可以通过DDE, FastDDE, SuiteLink, OPC协议连接WINOOWs客户端软件,如Wonderware InTouch。
PLCDevice Group>
{西门子与客户携手,让关键所在,逐一实现}
联 系 人: 黄勇《黄工》 24小时联系手机: 13701633515
直线销售 电 话: 021-31660605 在 线 商 务 QQ: 77956468
德国制造 现货
全新原装 参数
质量保证 保修
价格优势 特价
我公司大量现货供应,价格优势,品质保证,德国原装进口
没搞清楚数据类型的悲剧
程序中的地址是可以改动的,但是有一个根本性的原则必须遵守,即同一个地址同时只能用于一个用途,否则就好像人犯了重婚罪一样,会出大乱子!!并且这样的问题还不容易查出来。
MD1由MB1~MB4这4个字节组成,MD2由MB2~MB5这4个字节组成,MD1和MD2有3个字节(MB2~MB4)是重叠的,这样使用地址不出问题才怪!
这个读者做实验用的项目没有几条指令,还不太容易出现地址重叠的问题,出现了也容易查找。在实际的项目中,为了避免重复使用地址,可以用STEP 7的参考数据中的赋值表来检查某个特定的地址是否已被使用,用交叉参考表来检查同一地址在什么地方被多次使用。
这个问题告诉我们,要想提高读程序和编写程序的水平,一定要打牢基础,像数据类型这一类基础知识,最好能牢记于心。
梯形图如何输入一个word(dword)输出16bits(32bits)
主要的是如何实现W_BO这种CFC块的功能程序!看了半天手册,还不知道如何下手,请高人指点!有类似程序最好!
1.新建一个FC,添加一个IN变量(INT类型)例如IN1,16个OUT变量(BOOL类型),例如OUT1~OUT16
2.打开FC,编程如下
L IN1
T LW0
= OUT1
A L0.1
= OUT2
......
A L1.7
= OUT16
3,在OB1中调用FC,添加输入输出即可。
西门子PLC外部数据BCD码的输入方法
图1(a) 以字节单元为基准标记存储器单元 图1(b) 存储器中字节、字、双字之间的关系
图2(a) 主程序流程

图2(b) 子程序流程
图3(a)主程序
图3(b) 子程序
2 设计关键技巧和注意事项
配置SIDirect DAServer 通过TCP/IP实现和西门子PLC的通信
本Tech Note 一步一步详细介绍了如何配置和使用Wonderware SIDirect DA Server连接/访问S7 PLC(这里,我们以S7-400 PLC 为例),以及如何用DDE/SuiteLink协议访问此DA Server。
在开始之前,请确保已满足以下条件:
1.仔细阅读并按照SIDirect DAServer的Readme文件及相关文档,来得到SIDirect DAServer所需要的系统需求,正确的安装过程,操作系统等信息。
2.安装SIDirect DAServer,如果已经安装了以前版本的SIDirect DAServer,请使用的"控制面板"中的"添加/删除程序"卸载,本Tech Note使用SIDirect DAServer 1.1版。
3.安装并配置以太网卡和TCP/IP协议。
4.确认你可以"Ping"通你要连接的PLC。
注意:请仔细阅读SIDirect DAServer的在线文档关于所支持的硬件和软件部分,SIDirect DAServer只支持TCP/IP通信,不支持MPI,Profibus等其他非以太网方式。
本Tech Note假定用户具有并理解以太网,西门子S7 PLC 硬件/软件,WINOOWs 操作系统,Wonderware FactorySuite组件,WWClinet, SIDirect DAServer的基本知识。
配置SIDirect DAServer
1.选择任何栏上的开始/程序以启动SIDirect DAServer。
2.找到包含“System Management Console” 程序的 Wonderware文件夹,并点击启动System Management Console 程序。
3.在ArchestrA System Management Console(SMC)中找到“DAServer Manager”树下的SIDirect DAServer。在Local节点下,DAServer 名字是“ArchestrA.DASSIDirect.1”。见下图1:
图1. SMC中的DASSIDirect DAServer
4.展开ArchestrA.DASSIDirect.1,并选择“Configuration”,将出现如下“Global Parameters”对话框(图2):
图2. DASSIDirect – Global Parameters
◆ Device Group Update Interval: 定义Device Group的默认更新时间间隔
◆ Slow Poll Interval: 定义当连接发生问题进入“Slow Poll”模式时,DAServer查询设备的时间间隔。当通信恢复正常后,DAServer的查询间隔调整为Device Group的查询间隔。
◆ Transaction to SubSCRJPTion Ratio:“Transaction”是来自于DDE/SL/OPC客户端的读/写消息,“SubSCRJPTion”是有处于“需采集”状态的数据点产生的,“SubSCRJPTion”按“Update Interval”为间隔周期性发送。 “Transaction to SubSCRJPTion Ratio”定义DAServer在发送一个SubSCRJPTion前可以发送的Transaction的最大数目。它是当有多个等待中的Transaction时,Transaction和SubSCRJPTion的比例,比例的后者总是为1。所以,默认设置为2表示Transaction和SubSCRJPTion的比例是2:1。这个比例确保当Transaction非常繁忙时,任有一定数量的SubSCRJPTion动作。 例如:比例设为2, 同时有3个Transaction, 2个SubSCRJPTion准备好,Toolkit将先发送2个Transaction,1个SubSCRJPTion, 在发送1个Transaction, 1个SubSCRJPTion。
◆ Transaction Message Timeout: 每个Transaction(读/写/刷新等)消息的超时设置,这个超时设置使得客户端不会由于某种原因Transaction永久不被发送时导致被挂起。这是一个Transaction中消息更新的最大允许时间。此数字应该设置为一个单独的数据更新不应超过此时间设置。
◆ Server Protocal Timer: 因为SIDirect DAServer使用事件驱动的协议引擎,此选项无效。
◆ Diagnostic Backlog Size: 定义在“Transaction Diagnostic”根上可显示的最大的Transaction数。
◆ Poke Mode: 有以下有效模式:
- Control 保持写数据的顺序不改变,并且不合并Transaction。
- Transaction 使用保留要写的第1,第2和最后一个数据的合并方式保持写数据的顺序。
- Optimization 不保持写数据的顺序,并且合并写数据的Transaction,只写入最后一个要写的数据。
◆ Case Sensitive: 控制DAServer按大小写顺利扫描数据项和Device Group。
◆ Device Group Cache: 此参数保留将来使用。
◆ Simulation Mode: 此设置在此SIDirect DAServer中无效。
◆ System Items: 此参数控制系统数据点是否出现在浏览窗口中,是否做为DAServer数据采集接口的有效数据项。
◆ Unique Device Groups: 此参数控制是否检查Device Group在整个DAServer中的唯一性。
5.右键点击“Configuration”图标。
6.在菜单中选择“Add PortCpS7 Object”。
7.右键点击“New_PortCp_000”并选择“Add S7Cp Object”,出现如下S7参数设置对话框(图3):
图3. S7 CP通信参数
◆ Network Address: 输入PLC的IP地址,在此例子中,PLC的IP地址是192.168.10.41
◆ Local TSAP: 定义本地站的传输服务访问点,第一为数字定义设备,第一位数字为0,推荐设置为01.00
◆ Remote TSAP: 定义PLC的传输服务访问点。
◆ Remote Rack No.: 输入10进制机架号。
◆ Remote Slot No.: 输入10进制的CPU槽号。在此Tech Note中,机架号设为0,CPU槽号设为3(电源模块占2个槽,所以CPU槽号为3)。
◆ Connection Resource: 从下拉框中选择16进制的连接资源。
8.选择“Device Group”属性页。
9.右键点击“Device Group”对话框中的空白地方,添加新的Device Group(类似主题名)到Device Group对话框中。如下图4所示:
图4. Device Group 对话框
10.选择并用右键点击默认名Topic_0, 把它重新命名成一个有意义的名字,如S7PLC, 如图5所示:
图5. S7PLC Device Group
11.在左面的树形结构图中,右键点击ArchestrA.DASSIDirect.1并从子菜单中选择“Activate Server”来启动此DA Server,ArchestrA.DASSIDirect.1旁边的图标将由红变成绿,如下图6所示:
图6. SIDirect DA Server已激活
测试此 DASSIDirect Server
DASSIDirect Server已经准备就绪,下面做一个快速的通信测试来验证和我们可以和PLC的连接。
1.点击“开始/运行”并键入WWClient启动Wonderware WWClient程序。
2.从主菜单上选择“Connection/Create”,将出现“Create Connection”对话框。
3.输入正确的信息,如图7所示:
◆ Node: 此处为空白,因为DASSIDirect Server和WWClient在同一台计算机中。否则,输入运行DAServer的机器的名字。
◆ Application: DASSIDirect, SIDirect DAServer的应用程序名。
◆ Topic: S7PLC,我们刚才在DASSIDirect的Device Group对话框中新建的Device Group。
◆ Connection Type: IOT,在这里,我们使用SuiteLink协议。
图7. Create Connection 对话框
4.依此点击“Create”,“Done”。
5.在主菜单上选择“Item”。
6.输入已知正常工作的PLC寄存器地址。
7.下图显示了WWClient成功取得S7 PLC数据项MB90,在Item输入框中的输入MB90,点击AdviseEx注册并开始获取此数据项,如果连接S7 PLC的以太网工作正常的话,你会看到从MB90寄存器中取得的数据,如图9,10所示:
图9. Item
图10. WWClient显示MB90的值
*您的姓名:
*联系手机:
固话电话:
E-mail:
所在单位:
需求数量:
*咨询内容: