全国服务热线 15221406036

西门子PLC模块6ES7223-1BF22-0XA8

发布:2023-03-22 17:28,更新:2024-05-08 07:10

西门子PLC模块6ES7223-1BF22-0XA8

如果属于RAM区,那么是否可把V区的数据拷贝到EEPROM中?
答:西门子S7-200plc系统中用到了三种存储器件:
RAM: 易失性的存储器,失去电源供应后,其中保存的数据会丢失。S7-200 CPU中的RAM由超级电容+外插电池卡提供电源缓冲。RAM保存V、M、T(定时器)、C(计数器)等各数据区的内容,在CPU失电后的表现由用户在系统块“数据保持”页中设置 
EEPROM:非易失的电可擦除存储器,保存数据不需要供电,并且可以改写其内容。上述RAM数据区中有的部分与EEPROM中的区域一一对应。用户程序也**保存在程序EEPROM区中 
外插存储卡:非易失的存储器。用来保存用户程序、数据记录(归档)、配方数据,以及一些其他文件等 
RAM区的数据保持靠“内置超级电容+外插电池卡”的机制。
在CPU内部靠一个超级电容,在掉电后为RAM存储器提供电源缓冲,保存时间可达几天之久,具体时间见表1、表2。CPU上电时,超级电容就可以充电。要获得规格表中的数据保持时间,电容必须连续充电24小时。
S7-200还可选用外插电池卡(需单独定货),在超级电容耗尽后为RAM数据区提供电源缓冲。在连续无供电时,它可使用200天(即保持数据达200天)。CPU在不断电的情况下专用电池卡能够使用10年。电池卡是不可充电的。
CPU内置的EEPROM存储器用于**保存数据,包括与RAM数据区一一对应的全部的V存储区、部分M存储区(MB0 - MB13)、定时器(TONR)。
例如V存储区的VW100(RAM)在EEPROM中有其独占的对应地址,数据在从EERPOM中写到V存储区中时,其目标地址就是VW100。
数据可以用如下方式写入EEPROM数据区:
在编程软件Micro/WIN的Data Block(数据块)中定义V数据区存储单元的初始值,下载数据块时,这些数值也被写入到相应的EEPROM单元中。 
用特殊存储器SMB31、SMW32,用编程方法将V存储区的数据写入EEPROM 
在System Block(系统块)中设置数据保持功能,可将MB0 - MB13的内容在CPU断电时自动写入到EEPROM中**值编码器的信号输出  
  **值编码器信号输出有并行输出、串行输出、总线型输出、变送一体型输出。  
  1. 并行输出:
    **值编码器输出的是多位数码(格雷码或纯二进制码),并行输出就是在接口上有多点高低电平输出,以代表数码的1或0,对于位数不高的**编码器,一般就直接以此形式输出数码,可直接进入plc或上位机的I/O接口,输出即时,连接简单。但是并行输出有如下问题:
    1、必须是格雷码,因为如是纯二进制码,在数据刷新时可能有多位变化,读数会在短时间里造成错码。
    2、所有接口必须确保连接好,因为如有个别连接不良点,该点电位始终是0,造成错码而无法判断。
    3、传输距离不能远,一般在一两米,对于复杂环境,**有隔离。
    4、对于位数较多,要许多芯电缆,并要确保连接优良,由此带来工程难度,同样,对于编码器,要同时有许多节点输出,增加编码器的故障损坏率。    
  2. 串行SSI输出:
    串行输出就是通过约定,在时间上有先后的数据输出,这种约定称为通讯规约,其连接的物理形式有RS232、RS422(TTL)、RS485等。
  由于**值编码器好的厂家都是在德国,所以串行输出大部分是与德国的西门子配套的,如SSI同步串行输出。
  SSI接口(RS422模式),以两根数据线、两根时钟线连接,由接收设备向编码器发出中断的时钟脉冲,**的位置值由编码器与时钟脉冲同步输出至接收设备。由接收设备发出时钟信号触发,编码器从高位(MSB)开始输出与时钟信号同步的串行信号.
  串行输出连接线少,传输距离远,对于编码器的保护和可靠性就大大提高了。
  一般高位数的**编码器都是用串行输出的。    
  3. 现场总线型输出
  现场总线型编码器是多个编码器各以一对信号线连接在一起,通过设定地址, 用通讯方式传输信号,信号的接收设备只需一个接口,就可以读多个编码器信号。总线型编码器信号遵循RS485的物理格式,其信号的编排方式称为通讯规约,目前全世界有多个通讯规约,各有优点,还未统一,编码器常用的通讯规约有如下几种:
  PROFIBUS-DP; CAN; DeviceNet; Interbus等
  总线型编码器可以节省连接线缆、接收设备接口,传输距离远,在多个编码器集中控制的情况下还可以大大节省成本。
  4.变送一体型输出

连接**编码器的电气二次设备:
  连接**值编码器的设备可以是可编程控制器PLC、上位机,也可以是专用显示信号转换仪表,由仪表再输出信号给PLC或上位机。  
  1.直接进入PLC或上位机:
  编码器如果是并行输出的,可以直接连接PLC或上位机的输入输出接点I/O,其信号数学格式应该是格雷码。编码器有多少位就要占用PLC的多少位接点,如果是24伏推挽式输出,高电平有效为1,低电平为0;如果是集电极开路NPN输出,则连接的接点也必须是NPN型的,其低电平有效,低电平为1。  
  2.编码器如果是串行输出的,由于通讯协议的限制,后接电气设备必须有对应的接口。
  例如SSI串行,可连接西门子的S7-300系列的PLC,有SM338等专用模块,或S7-400的FM451等模块,对于其他品牌的PLC,往往没有专用模块或有模块也很贵。  
  3.编码器如是总线型输出,接受设备需配专用的总线模块,例如PROFIBUS-DP。
  但是,如选择总线型输出编码器,在编码器与接收设备PLC中间,就无法加入其他显示仪表,如需现场显示,就要从PLC 再转出信号给与信号匹配的显示仪

已调试成功,希望能对有类似情况的朋友有帮助。
   今天同事打电话说现场6台宇电AI仪表,1台东辉8路巡检仪,3台富士FRENIC-VP变频器,2台日本RKC仪表,1台创盛流量计都要挂到WINCC里(之前说是厂方自己弄的),因为厂方临时要求加的,邮寄CP340挂到S7300就算了,也没几个通信设备,都是RS485,一条通讯线挂一起,能省就省吧,同事随身带的有RS485转232模块。
   平常项目都是自己写的软件,二年前就用过一次WINCC6,外挂其它通讯设备也没试过,在网上搜了一圈,多是讲opc什么的,不了解,觉得对我来说不太合适。还有讲用MSCOMM控件的。MSCOMM控件就不提了,已废弃多年不用了,不可能再回到老路上。于是决定移植上位机的代码,用WIN32 API 来做成OCX,WINCC里来调用,这样并非像网上说的要支持MODBUS协议或找OPC什么,只要通讯设备有通讯协议,带通讯接口即可。我的方法看起来也许比较麻烦,但方便维护,去现场调试的人不需对通讯怎么懂,会设置通讯设备的地址参数就行了,其它都用默认参数,再说增加个新的通讯设备协议,也就一小会儿事。
1.先编个基类,定义接口,方法,属性,例如通讯COM口,波特率、数据位、停止位、校验方式等等生成dll链接库。
2.从基类派生各个通讯设备类,如仪表,变频器,流量计,plc等等,通讯设备类负责将要读或要写的数据打包给串口类,并接收来自串口类的回送数据进行处理,生成dll链接库,这个库*大,包含了五十多种设备的通讯,以后新加通讯设备只需拷贝一个,稍加修改即可。
3.再编个通讯串口类,调用WIN32通信API函数,负责将通讯设备类打包过来的发送数据发送出去,再将接收到数据返回给通讯类自身处理,生成dll动态链接库。
4.再编个消息类,负责将通讯的发送字节,接收字节,当前通讯设备的通讯设置参数,通信成功或失败等信息作为事件触发,生成dll动态链接库.
5.后面的就简单了,编个OCX控件直接引用上面的DLL库编几个小调用函数,再封装几个属性和消息事件触发,编译一下做个OCX安装程序。
6.发给同事OCX安装包,同事安装后直接注册下OCX即可用,只需在WINCC里初始化下这个OCX挂的各个设备名称,通讯地址,端口,波特率,数据位,停止位。然后再在循环处理过程里编个通用的轮循过程,要读的设备号,要读的参数或要写的参数及要写的数据。读写成功失败或者收发的字节通过OCX的事件触发来处理。
7.如果现场新加的通讯设备协议在这个OCX中,WINCC只需要改一下初始化过程,挂靠的OCX通讯设备名称,通讯参数即可,其它如轮循过程,变量处理根本不需要改动。
       如果WINCC只挂少量设备,也可以采用MSCOMM控件处理,毕竟MSCOMM简单,建议还是不要在WINCC里直接用MSCOMM控件,代码很乱,不方便移植。还是自己编个OCX,在OCX里面用MSCOMM控件,再封装几个方法属性出来给WINCC调用,也方便客户使用。

   毕竟WINCC我很少用它,但它确实很强大^_^,也许是我不熟的原因,觉得它通信慢。问下大家,读单字,双字大概算下来有合计800个16位字的通讯,MPI方式.下午顺便发了个测试代码给同事,同事说WINCC一次大概只能读100多个字,也就是200多个字节,再多了就失败,而且每次耗时大概1~2秒.那800个字不得调8次?感觉这样不行。我用的GetTagRaw函数.但是我记得如果采用PRODAVE方式,一次就可以读回来了,耗时感觉不到1秒,正考虑是不是把S7300/200 PLC通讯全移到OCX处理算了,不知有没这个必要。


联系方式

  • 地址:上海松江 上海市松江区石湖荡镇塔汇路755弄29号1幢一层A区213室
  • 邮编:201600
  • 联系电话:未提供
  • 经理:聂航
  • 手机:15221406036
  • 微信:15221406036
  • QQ:3064686604
  • Email:3064686604@qq.com