孝感西门子S7-200代理商
西门子PLC程序中常用的几个指令介绍
串联电路块的并联连接指令OLD
两个或两个以上的接点串联连接的电路叫串联电路块。串联电路块并联连接时,分支开始用LD、LDN指令,分支结束用OLD指令。OLD指令与后述的ALD指令均为无目标元件指令,而两条无目标元件指令的步长都为一个程序步。OLD有时也简称或块指令。
2、并联电路的串联连接指令ALD
两个或两个以上接点并联电路称为并联电路块,分支电路并联电路块与前面电路串联连接时,使用ALD指令。分支的起点用LD、LDN指令,并联电路结束后,使用ALD指令与前面电路串联。ALD指令也简称与块指令,ALD也是无操作目标元件,是一个程序步指令。
3、输出指令 =
1、= 输出指令是将继电器、定时器、计数器等的线圈与梯形图右边的母线直接连接,线圈的右边不允许有触点,在编程中,触点以重复使用,且类型和数量不受限制。
4、置位与复位指令S、R
S为置位指令,使动作保持;R为复位指令,使操作保持复位。从的位置开始的N个点的寄存器都被置位或复位,N=1~255如果被复位的是定时器位或计数器位,将清除定时器或计数器的当前值。
5、跳变触点EU,ED
正跳变触点检测到一次正跳变(触点的入信号由0到1)时,或负跳变触点检测到一次负跳变(触点的入信号由1到0)时,触点接通到一个扫描周期.正/负跳变的符号为EU和ED,他们没有操作数,触点符号中间的"P"和"N"分别表示正跳变和负跳变
6、空操作指令NOP
NOP指令是一条无动作、无目标元件的一个序步指令。空操作指令使该步序为空操作。用NOP指令可替代已写入指令,可以改变电路。在程序中加入NOP指令,在改动或追加程序时可以减少步序号的改变。
7、程序结束指令END
END是一条无目标元件的一序步指令。PLC反复进行输入处理、程序运算、输出处理,在程序的后写入END指令,表示程序结束,直接进行输出处理。在程序调试过程中,可以按段插入END指令,可以按顺序扩大对各程序段动作的检查。采用END指令将程序划分为若干段,在确认处于前面电路块的动作正确无误之后,依次删去END指令。要注意的是在执行END指令时,也刷新监视时钟
定位模块
EM 253是一个用于简单定位任务的功能模块(1轴)。可以将它连接到步进电机和伺服电机,通过高频脉冲输入从Micro Stepper连接到高性能伺服驱动器。
EM 253定位模块以与扩展模块相同的方式进行安装,通过一体化连接电缆连接到S7 - 200扩展总线。
连接之后,从CPU自动读出配置数据
该模块具有以下特点:
-用于来自过程信号的5位输入
-驱动器直接激活用24脉冲输出(向前/向后或者速度/方向)
-2控制输出(DIS;CLR)。
-12个状态LED
称重模块
SIWAREX MS是一种多用途称重模块,用于各种简单称重和力测量任务。在SIMATIC S7-200自动化系统中可以很容易安装地紧凑型模块。可以在SIMATIC CPU中直接访问实际重量的数据,无需任何额外接口。
1、使用65000件高分辨率和0.05%的准确度测量重量或者力
2、通过RS232接口,使用SIWATOOL MS PC程序简便地调整规模支持更换模块,无需更新规模调整
3、针对在Ex 2区使用,通过Ex接口为1区供电的本质安全测压元件
热电偶模块EM231(模拟模块)
热电偶模块EM231是一个采用标准热电偶和高精度温度传感器。在±80 mV范围内也可能检测到低电平模拟信号。热电偶模块EM231可以与CPU 222,224和226配套使用。
4个或者8个模拟输入
不同的测量范围:J,K,T,E,R,S和N型热电偶;±80 mV的模拟信号采集检查开放线路
冷连接点的补偿
温度刻度:可以将测得的温度规定为°C或者°F。
热电阻模块EM231 RTD(模拟模块)
热电阻模块EM231是一个采用标准电阻温度检测器的高精度温度传感器。它们可以与CPU222,224和226配套使用。热电阻模块应安装在低温度波动的位置处,从而确保蕞高的准确度和可重复性。
两个或四个温度检测器用模拟输入
全部电阻温度检测器为相同类型
在墙或者DIN导
产品简介:
SIMATIC S7-200系列PLC适用于各行各业,各种场合中的检测、监测及控制的自动化。S7-200系列的强大功能使其无论在独立运行中,或相连成网络皆能实现复杂控制功能。因此S7-200系列具有的性能/价格比。
设计
CPU 1518F-4 PN/DP 特性:
功能强大的处理器:
该 CPU 的单条二进制命令的命令执行时间可低至 1ns。
大容量 RAM
6 MB 用于程序,20 MB 用于数据
采用 SIMATIC 存储卡作为加装存储器;
允许实现例如数据日志和归档等其它功能
灵活的扩展功能:
单层组态多可支持 32 个模块(CPU + 31 个模块)
显示器的功能为:
显示概览信息,如集成接口的 IP 地址、站名称、设备名称、位置标识符等。
显示安全模式、后一次下载的总体签名和日期(签名发生改变)。
诊断信息显示
模块信息显示
显示设置
设置 IP 地址
日期和时间设置
选择操作模式:
复位 CPU 至出厂设置
禁用/启用显示屏
启用保护级别
显示安全模式、后一次下载的总体签名和日期(前面发生改变)。
PROFINET IO IRT 接口用于通过 PROFINET 进行分布式 I/O 连接
2 个 PROFINET 接口用于网络分离
PROFIBUS DP 接口用于通过 PROFIBUS 进行分布式 I/O 连接
支持集中式和分布式配置中的 PROFIsafe
通过全集成自动化博途 (TIA Portal),可以访问整个数字化的自动化系统:从数字化规划到集成工程组态直至透明运行。新版本 TIA Portal 通过各种措施来缩短产品上市时间(包括使用模拟工具),通过附加诊断及能源管理功能提高工厂的生产力,并通过连接到管理层来提高灵活性。TIA Portal 可提供灵活的云解决方案,借助于数字化双胞胎 (digital twin) 进行虚拟调试,使不同领域团队之间开展协调的团队工作,提高了透明度,实现了一体化能源管理。
新型 SIMATIC S7-1500 系列控制器配合博途工具(TIA Portal),提供了众多新功能,可进一步提升机器设备的生产率,并实现更加高效的工程组态过程。本入门指南将介绍这些新功能。首先,将介绍硬件信息。然后,将介绍如何使用 SIMATIC STEP 7 V12 (TIA Portal) 对 SIMATIC S7-1500 进行组态及编程。后,将介绍如何使用 SIMATIC WinCC Professional V12 (TIA Portal) 或 SIMATIC WinCC Advanced V12 (TIA Portal) 连接 SIMATIC HMI 精智面板。
SIMATIC S7-1500 的操作处理十分方便,在许多新的细节上都具有的用户友好性。详细的文本信息提供了*工厂透明度。标准化的前连接器简化了备件储存。夹头和标签易于实际分配,缩短了接线时间,促进了发生故障时的诊断。借助于集成的电压桥,可简单而灵活地形成电压组;自动断路器和继电器等辅助组件可快速、方便地进行安装。模拟量信号可确保信号接收的高质量,不受外部电磁干扰的影响。由于便于扩展、可定制化组装且向上兼容,提供了成本效益和投资安全性
集成安全功能:通过密码进行专有技术保护,防止未经许可证读取和修改程序块。通过复制保护来提高保护程度,防止未经许可证而复制程序块:通过复制保护,可将 SIMATIC 存储卡上的程序块与其序列号绑定,以便只有在将配置的存储卡插到 CPU 中时,该程序块才可运行。具有四个不同许可证级别的权限:可向各个用户组分配不同访问权限。通过新的保护级别 4,还可以限制与 HMI 设备之间的通信。改进了操作保护:控制器将会检测到组态数据的更改或未许可证传输。用于以太网通信处理器 (CP 1543-1):通过防火墙提供附加访问保护。建立安全 VPN 连接。设计与操作:配备显示器的 CPU,可显示纯文本信息(因特网上的显示仿真工具):可显示所有连接模块的订货号、固件版本和序列号信息直接在现场设置 CPU 的 IP 地址以及进行其它网络设置,无需使用编程设备直接以普通文本形式显示错误消息,可缩短停机时间所有模块采用统一的前连接器,并具有用于灵活形成电压组的集成式电压桥接件,从而简化了库存,减少了布线
以下叙述的硬件/软件条件为:不带RS232串口的笔记本电脑、欧姆龙CPM2AH-60CDR型plc、Cx-Programmer V5.0编程软件。 1. Cx-Programmer V5.0与PLC通信不稳定: 电脑与PLC的连接方式:电脑USB口(该电脑没有RS232串口)←→[USB转RS232电缆的USB插头←→USB转RS232电缆线(电脑已经安装驱动,且默认的COM4端口已经设置为COM1)中间部分←→USB转RS232电缆的RS232公头]←→[[电脑与PLC的连接电缆的RS232母头←→电脑与PLC的连接电缆线的中间部分←→电脑与PLC的连接电缆的RS232公头]]←→PLC的RS232母头。 上面单中括号内为USB转RS232电缆,双中括号内为电脑与PLC的连接电缆。电脑与PLC的连接电缆接线如下:(1).公头(用以连接PLC)的2、3、9分别与母头的2、3、5(用于连接电脑或USB转RS232连接线)短接,这是欧姆龙官方的连接方法;(2).公头和母头的2-2、3-3、5-5分别短接,这是RS232连接线的常规连接方法。后来经过实践证明:上面2种电脑和PLC的连接电缆都可以使用。第1种电缆通信稳定可靠。对于第2种电缆,当电脑和PLC之间通过VC应用程序进行通信时效果不好,容易丢帧(用串口调试助手可以看到),只有当电脑和PLC共用电源(共地)时才没有发现问题。所以,请尽量采用第1种连接电缆。 有时间电脑和PLC能正常通信,有时间却不行——显示“Modem已经被选中,要继续码?”故障(实际上“码”应当为“吗”),一旦出现该故障信息,就一定会出现以下故障信息: 当通信不上时,笔者采用过克隆回以前的正常操作系统、重新安装Cx-Programmer V5.0编程软件等方法,又可以正常通信了,但一旦断线后又可能通信不上了。有几次还发现,有些程序可以和PLC通信上,而有些程序却不行!因此,笔者就将可以通信的PLC程序先备份,然后全部删除程序中的指令,后将目标程序的指令全部复制过来(复制时注释可以自动复制过来),这样居然电脑就可以正常和PLC进行通信了!但是——下一次这个程序可能又无法正常通信了!郁闷…… 根据通信错误信息“Modem已经被选中,要继续码?”,笔者找到了解决方法:在桌面上右击“我的电脑”,再点击“属性”——“硬件”——“设备管理器”,再双击“调制解调器”,再右击展开的调制解调器型号,点击“停用”就可以了。 另外,正确连接方法如下:在电脑没开机或(和)PLC没通电(否则带电拔插通信口可能造成通信口损坏(虽然这种几率不大,但你好不要去碰运气))的情况下连接好USB转RS232电缆、电脑与PLC的连接电缆,然后再通过Cx-Programmer连接电脑与PLC。 请注意:USB口也不是随便乱插就可以的,关键要保证设备管理器里的RS232口为COM1。笔者的电脑上时这种情况:初已将默认的RS232口从COM4口改为COM1口,但插下面的USB口却对应RS232的COM4口(COM1、COM3正在使用),无法连接电脑与PLC;插上面的USB口对应RS232的COM1口(COM2、COM4正在使用),可以连接电脑与PLC。 2. Cx-Programmer V5.0与PLC通信干扰: 如果Cx-Programmer在线,电脑和PLC已经连接,处于通信状态下,当每次设备停机时(将近20个交流接触器同时断开)Cx-Programmer将会出现通信错误,电脑和PLC连接中断。而当每次开机时(将近20个交流接触器同时吸合)却不会出现通信错误的情况。 解决方法:重新连接PLC。如果你是个完美主义者,可以在每个接触器线圈上加一个RC阻容模块(每个RC模块大概60个大洋左右),也许不会出现通信错误的情况(不过笔者没有试过哟...)。 3. 电脑与PLC的连接电缆试验: 因为想到电脑与PLC的连接电缆(第1种常规的连接电缆)为2-2短接、3-3短接、5-5短接,所以考虑直接用USB←→RS232电缆将电脑和PLC连接起来,如果这样可以的话不就省了一条连接电缆了吗?下面是直接用USB←→RS232电缆将电脑和PLC连接起来的试验结果: 有时间第1次通信时出现以下错误:“所选的端口被另一个应用所占用”;第2次通信时出现以下错误: 为什么电脑通过上述两种连接电缆与PLC连接没有问题,而直接采用USB转RS232电缆线与PLC连接却不行呢?以下是分析过程: 第1种可能:阻抗的原因。虽然上述两种连接电缆为直连线,却有阻抗存在,多了这个阻抗就可以正常连接。但这个原因好像很牵强,连笔者自己都不能相信。 第2种可能:该USB转RS232的公头与PLC的母头接触不良,而加一根电缆却能连接正常——USB转RS232的公头与连接线的母头接触良好,连接线的公头与PLC的母头接触良好。该猜测来源于笔者遇到过的一次电脑故障:某台电脑的鼠标无法使用,另外换一个鼠标正常,把故障鼠标换到其它电脑却能正常使用。后怀疑鼠标接头与主板插口接触不良,就将鼠标插头破开再涂上一层焊锡,结果使用正常!但是对于USB转RS232的公头与PLC的母头接触不良这种猜测,笔者觉得可能性不大——因为他解释不了“所选的端口被另一个应用所占用”这个故障。 后想到了另外一个可能:USB转RS232直接与PLC连接就相当于USB转RS232的串口与PLC的串口1-1、2-2、3-3、4-4、5-5、6-6、7-7、8-8、9-9一一对应连接,而通过连接线却只有2-2、3-3、5-5三对端子连接,这说明1-1、4-4、7-7、8-8、9-9至少有一对是不能连接的,否则就会出现问题,而且这还既有可能损坏PLC与电脑的通信端口。笔者认为就是这个原因。 |
1.引言 CPU寄存器状态字的各位给出了有关指令状态或结果的信息以及所出现的错误,我们可以将二进制逻辑操作状态位信号状态直接集成到程序中,以控制程序执行的流程。 2.状态字寄存器 先简单介绍一下CPU中状态字。 ●检查位:状态字的0位称作检查位,如果/FC位的信号状态为“0”,则表示伴随着下一条逻辑指令,程序中将开始一个新的逻辑串。FC前面的斜杠表示对FC取反。 ●逻辑运算结果:状态字的第1位为RLO位(RLO=“逻辑运算结果”),在二进制逻辑运算中用作暂时存储位。比如,一串逻辑指令中的某个指令检查触点的信号状态,并根据布尔逻辑运算规则将检查的结果(状态位)与RLO位进行逻辑门运算,然后逻辑运算结果又存在RLO位中。 ●状态位:状态位(第2位)用以保存被寻址位的值。状态位总是向扫描指令(A,AN,O,…)或写指令(=,S,R,)显示寻址位的状态(对于写指令,保存的寻址位状态是本条写指令执行后的该寻址位的状态)。 ●OR位:在用指令OR执行或逻辑操作之前,执行与逻辑操作的时候,就需要用到OR这一状态位。OR位表示先前执行的与逻辑操作产生的值为“1”,于是,逻辑操作或的执行结果就已被确定为“1”。 ●OV位:溢出表示算术或比较指令执行时出现了错误。根据所执行的算术或逻辑指令结果对该位进行设置。 ●OS位:溢出存储位是与OV位一起被置位的,而且在更新算术指令之后,它能够保持这种状态,也就是说,它的状态不会由于下一个算术指令的结果而改变。这样,即使是在程序的后面部分,也还有机会判断数字区域是否溢出或者指令是否含有无效实数。OS位只有通过如下这些命令进行复位:JOS(若OS=1,则跳转)命令,块调用和块结束命令。 ●CC1及CC0位:CC1和CC0(条件代码)位给出有关下列结果的相关信息: •算术指令结果 •比较指令结果 •字逻辑指令 •在移位功能中,移出位相关信息。 可以用以下指令来检查条件代码CC1和CC0。 CC1CC0检查完成后,如果: 00A==0结果=0 10A>0结果>0 01A<0结果<0 ●BR位:状态字的第8位称为二进制结果位。它将字处理程序与位处理联系起来,在一段既有位操 作又有字操作的程序中,用于表示字逻辑是否正确。将BR位加入程序后,无论字操作结果如何,都不会造成二进制逻辑链中断。在梯形图的方块指令中,BR位与ENO位有对应关系,用于表明方块指令是否被正确执行:如果执行出现了错误,BR位为0,ENO位也为0;如果功能被正确执行,BR位为1, ENO位也为1。在用户编写的FB/FC程序中,应该对BR位进行管理,功能块正确执行后,使BR位为1,否则使其为0。使用SAVE指令将RLO存入BR中,从而达到管理BR位目的。 状态字的9-15位未使用。 3.具体使用 下面我们结合STEP7中的指针编程来具体介绍条件码CC0/CC0的用法。 不同的指令在CPU中执行时间是不同的。浮点数比定点数执行时间要长;字逻辑指令比位逻辑指令执行时间要长;在某些程序中适当使用状态字来进行编程可以减少CPU程序的执行时间。 例1:比如说要比较一个DB中块的DBBO-DBB99这100个字节是正数是负数还是0,正数用1来表示;负数用-1来表示;0用0来表示。并且将对应结果存入MB200开始的100个字节中。我们通常的做法可能为:
如果利用条件码来进行编程,既可以减少程序的大小还会减少一定的指令执行时间,我们只需要将 中间的比较程序加以优化,即可以达到目的。 例2:根据状态位C0和CC1的状态而跳转的跳转功能指令JZ不改变任何状态位的状态,而且逻辑操作结果RLO值也会“随着”该跳转功能带到跳转程序段中,供用户程序其它逻辑操作之用(不改变/FC状态)。 示例两个整数相减并需进行连续判断: LMW2 LMW8 -I JZZERO//如果结果等于“0”,则跳转至标号ZERO处 //结果不等于“0”时所执行的指令 ZERO://结果等于“0”时,所要执行的指令 如果用户不熟悉JZ指令和状态位C0和CC1的具体含义,编程时就需要通过比较指令将比较结果存入一个二进制位中,再根据这个二进制位通过JC/JCN指令来控制程序的执行了。 例3:我们实际应用中可能要利用某些协议转换网关(比如说Hilscher公司的NTTAP系列网关)来和某些串口协议的仪表进行通信时,会遇到CRC校验的问题,关于CRC校验时需要判断溢出位是否为1的问题来进行程序的进一步计算。我们以EURO2408的MODBUS通信时需要的CRC校验为例说明CRC校验的步骤: 1、装载16#FFFF到一个16位CRC寄存器; 2、将CRC寄存器的高8位字节与信息中的个8位字节相异或,结果返回到CRC寄存器中; 3、将CRC寄存器数据向右移动一位; 4、如果溢出的位等于1,则将CRC寄存器与16#A001相异或,结果返回到CRC寄存器中; 4、如果溢出的位等于0,则重复第3步; 5、重复第3、4步骤,直到已经移位了8次; 6、将CRC寄存器的高8位字节与信息中的下一个8位字节相异或,结果返回到CRC寄存器中; 7、重复第3步到第6步,直到信息中所有字节都与CRC寄存器相异或,并都移位了8次; 8、后的CRC寄存器中的结果即为CRC校验码,后被添加到信息(数据)的末尾(交换!低8位 在前,高8位在后;) 在第4步中需要判断溢出的位是否为1,如何判断对于整个程序有着重要的影响。我们可以用A>0指令来判断这个条件,具体代码的编写,有兴趣时大家可以根据上面的步骤编写一个自己的CRC程序。 4.结束语 在一般情况下,我们不必考虑这些状态位,但在某些情况下,利用这些状态位并结合一定的指令,可以给我们的编程带来更大的灵活性,同时对于进一步提高自己的编程水平也有一定的作用。
|
发布时间:2024-05-08