- 发布
- 浔之漫智控技术-西门子PLC代理商
- 手机
- 15221406036
- 发布时间
- 2023-11-28 03:42:46
西门子模块6ES7231-7PC22-0XA0工作原理
一、赫优讯PKV40/50网关介绍
赫优讯(Hilscher)PKV40/50网关基于WinCE嵌入式操作系统,一个端口为现场总线主站,另一个端口为以太网端口,因此它支持现场总线主站和以太网协议的协议数据交换,通过简单的配置软件即可实现两种不同协议之间的自动转换。
PKV40系列产品可以进行的协议转换包括:
1、PKV40-ASIM:ASI总线主站至以太网
2、PKV40-COM:CANopen总线主站至以太网
3、PKV40-DNM:DeviceNet总线主站至以太网
4、PKV40-IBM:InterBus总线主站至以太网
5、PKV40-MBP:ModbusPlus总线主站至以太网
6、PKV40-PB:Profibus总线主站至以太网
PKV50系列产品可以进行的协议转换包括:
1、PKV50-COM:CANopen总线主站至以太网
2、PKV50-DNM:DeviceNet总线主站至以太网
3、PKV50-PB:Profibus总线主站至以太网 PLC
PKV40采用486/66MHzCPU,PKV50采用586/133MHzCPU,两者都基于嵌入式操作系统WinCEV3.0;相比于PKV40来说,PKV50具有更大的内存空间,并且特别适合于软PLC(SoftPLC)的开发。
二、PKV的软硬件结构和应用特点
对于型号PKV40-PB来说,其内部嵌入了赫优讯的通讯模块COM-PB,因此它是一个Profibus主站;同时嵌入式主板上提供了一个以太网通讯口,因此它也可以实现以太网通讯,所有通讯功能的实现由内部FLASH中的EXE程序来执行,下面是PKV的内部软件结构图和内部FLASH程序:
如上图所示,COM通讯模块实现Profibus主站功能,当使用SYCON配置软件通过COMServer将从站配置信息下载到COM模块后,COM即自主地与外部连接的DP从站实现通讯;同时,PKV内部FLASH集成的程序MbrTcp.exe实现了COM与外部ModbusTCP客户机的数据交换,因此我们可以通过ModbusTCP客户机来控制DP从站的IO;另外我们看到PKV内部集成了一个JavaSrv.exe,它是一个Java服务器,因此我们可以编写集成JavaApplet的HTML网页,然后传送到PKV的FLASH中,然后我们就可以在远程PC机上通过IE浏览器来读写PKV内部的DP从站数据。
PLC
另外,如果你希望将DP从站的IO逻辑控制直接编写成EXE文件,即相当于软PLC一样在PKV中运行也是可以的。因为PKV基于开放的WinCE系统,所有的接口都是开放的,包括COM端的驱动都可以在随机光盘中找到;当然,你需要采用嵌入式开发平台来编译你的EXE,如微软公司的bbbbbdedVisualC++。
三、应用PKV40-PB网关实现Profibus总线主站至ModbusTCP的通讯
在本案例中,我们采用西门子公司使用广泛的DP从站ET200M系列中的IM153-1(订货号6ES7153-1AA03-0XB0)作为PKV连接的从站,上位计算机采用ModbusTCP客户机软件来实现通讯。整个配置如下图:
如上图所示,PKV40-PB作为DP主站,地址为0;IM153-1作为DP从站,地址为4,同时扩展了一块16DO的SM322模块以方便观察数据交换;PC机上运行ModbusTCP客户机软件,与作为ModbusTCP服务器的PKV通讯,PKV以太网端口IP为。采用赫优讯SYCON软件来完成PKV的通讯组态。
案例的目的是实现在PC机上通过FC15(写多个Coil)功能来控制SM322模块的输出点。 PLC
完成本案例所需要的基本软硬件配置:
1、赫优讯PKV40-PB一块;
2、西门子IM153-1接口模块一块;西门子SM322-1BH01模块一块;
3、集成以太网卡和RS232串口的计算机一台;
4、Profibus电缆和两个网络插头;
5、以太网通讯线和交换机;
6、RS232通讯线一根(2/3交换,5接5),用于PKV的配置;
7、ModbusTCP客户机软件Commtest.exe,赫优讯SYCON软件(BASIC版本即可),IM153-1的ProfibusGSD文件;
实现案例的基本步骤:
1、完成配置图接线,设备上电;
2、运行SYCON软件,配置网络参数,下载到PKV中;
3、当PKV与IM153建立通讯后运行ModbusTCP客户机软件,控制SM322模块的输出点;
四、SYCON软件中的参数组态
SYCON软件是赫优讯公司组态所有网络通讯产品的统一的平台,SYCON的BASIC版本可以到我公司在中华工控网的空间下载://www.gkong.com/co/beichen-automation/download_viewbbbb?id=4975,注意这个版本只能组态一个主站和一个从站。 PLC
SYCON组态步骤:
1、打开SYCON软件,新建PROFIBUS网络,插入DP主站PKV40-PB,站点地址设为0;
2、选择File菜单中的CopyGSD,选择IM153-1的GSD文件:SIEM801D.GSD,添加到SYCON软件库中;
注:SIEM801D.GSD文件可以从西门子网站上下载到;
3、插入DP从站ET200M(IM153-1)至DP网络,站点地址设为4;
4、鼠标双击IM153从站,在弹出的对话框中进行从站模块配置;
5、保存参数配置,选中DP主站,选择Online菜单的Download,将参数配置下载到PKV中;
6、设置PKV的IP地址参数;
下图为ET200M从站的参数配置画面:
请注意:Slot1-3为空槽模块配置,从Slot4开始才是实际的IM153-1后面的模块。
选择Online菜单的StartDebugMode,然后选择IM153-1从站,鼠标右键选择DeviceDiagnostic进行从站诊断,下图为IM153-1正常工作时的诊断画面:
选择Tools菜单->PKV40-PB->PKV40SerialConfiguration,在弹出的对话框中选择相应的串口,然后点击Connect按钮连接到PKV,然后选择Configuration菜单中的相关菜单设置PKV的IP地址和子网掩码,如下图所示:
五、ModbusTCP客户机通讯
当SYCON正确的组态数据下载到PKV40-PB中后,PKV40-PB即与ET200M实现Profibus-DP通讯,IM153-1模块上的BF(BusFault)灯应该自动熄灭,PKV上的RUN灯常亮,ERR灯熄灭。
在计算机上运行ModbusTCP客户机软件Commtest.exe,设置ModbusTCP服务器IP为,连接后用FC15写输出,如下图所示:
上图将从1开始的8个Coil全部写1,可以看到SM322模块的全部被置位
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”。 PLC
● OV位:溢出表示算术或比较指令执行时出现了错误。根据所执行的算术或逻辑指令结果对该位进行设置。
● OS位:溢出存储位是与OV位一起被置位的,而且在更新算术指令之后,它能够保持这种状态,也就是说,它的状态不会由于下一个算术指令的结果而改变。 这样,即使是在程序的后面部分,也还有机会判断数字区域是否溢出或者指令是否含有无效实数。OS位只有通过如下这些命令进行复位:JOS(若OS = 1,则跳转)命令,块调用和块结束命令。
● CC1及CC0位:CC1和CC0(条件代码)位给出有关下列结果的相关信息:
• 算术指令结果
• 比较指令结果
• 字逻辑指令
• 在移位功能中,移出位相关信息。
可以用以下指令来检查条件代码CC1和CC0。
CC1 CC0 检查完成后,如果:
0 0 A == 0 结果 =0
1 0 A > 0 结果 > 0
0 1 A < 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状态)。 PLC资料网
示例 两个整数相减并需进行连续判断:
L MW2
L MW8
-I
JZ ZERO // 如果结果等于“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.结束语
在一般情况下,我们不必考虑这些状态位,但在某些情况下,利用这些状态位并结合一定的指令,可以给我们的编程带来更大的灵活性,同时对于进一步提高自己的编程水平也有一定的作用。
5.参考文献