西门子模块6ES7223-1BF22-0XA8正规授权

2024-05-08 07:10 58.39.62.106 1次
发布企业
浔之漫智控技术-西门子PLC代理商商铺
认证
资质核验:
已通过营业执照认证
入驻顺企:
2
主体名称:
浔之漫智控技术(上海)有限公司
组织机构代码:
91310117MA1J3R698D
报价
请来电询价
关键词
西门子代理商,西门子模块代理商,西门子一级代理商,西门子PLC代理,西门子中国代理商
所在地
上海市松江区石湖荡镇塔汇路755弄29号1幢一层A区213室
手机
15221406036
经理
聂航  请说明来自顺企网,优惠更多
请卖家联系我
15221406036

产品详细介绍

西门子模块6ES7223-1BF22-0XA8正规授权

引言随着PLC技术的不断发展,越来越显示其强大的核心控制功能,PLC和其他设备之间的连接已经从比较烦琐的传统I/O方式向越来越受欢迎的简洁先进的通信方式过渡,不仅为设计者节省了大量的硬件成本,更能为远程控制,组网提供了可能,使控制系统更加无缝地融为一体。

      本文主要通过艾默生PLC和多台变频器组网通信(以MODBUS协议方式)为例,说明PLC和多台变频器网络控制的通信程序的设计方法。

 

  一、 MODBUS协议简要介绍

  Modbus协议由美国的MODICON公司提出,通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信,不同厂商生产的控制设备可以连成工业网络,进行集中监控,它已经成为一通用工业标准。控制器通信使用主—从技术,即仅一设备(主设备)能初始化传输(查询)。其它设备(从设备)根据主设备查询提供的数据作出相应反应。典型的主设备:IPC,HMI,PLC等;典型的从设备:各种仪表,PLC,变频器等。主设备可单独和从设备通信,也能以广播方式和所有从设备通信。如果单独通信,从设备返回一消息作为回应,如果是以广播方式查询的,则不作任何回应。Modbus协议建立了主设备查询和从设备回应的格式:设备(或广播)地址、功能代码、所有要发送的数据、错误检测域。Modbus协议支持RTU模式和ASCII模式,RTU模式对应的帧格式如下:(ASCII模式介绍省略)


点击察看原图


  更详细的说明请查阅MODBUS协议的有关资料(或登陆网站 www.modbus.org)。

  

  二、艾默生PLC集成的MODBUS协议功能

  艾默生EC20系列PLC的通信口COM 1集成了MODBUS主站协议,在编程时先在编程软件的系统块里进行设置具体如下:系统块—>“通信口”菜单—>“通信口1参数设置”菜单—>选“MODBUS协议”—> 进行“MODBUS设置”—> 进行通信参数和(主模式)站号等设置即可。

  利用MODBUS指令进行编程-----------MODBUS (S1) (S2)(S3)各参数含义如下:

  S1 指定的通讯通道;    

  S2 发送数据起始地址;     

  S3 接收数据起始地址;

  MODBUS指令发送过程中,自动加上所需的起始字符,结束字符和校验和;发送的数据,不需设定发送的数据长度,系统会根据功能码自动按系统内部设定长度进行发送。

  2个重要的通信标志:SM135--MODBUS的通讯成功标志位,通讯成功时置位,不会自动复位,在发送数据的时候要进行一次复位;SM136—MODBUS的通信错误标志位,通信错误(包括从设备没有回应)时置位,不会自动复位,在接收数据的时候要进行一次复位;

  三、艾默生变频器通信协议


  艾默生公司生产的EV系列变频器都集成MODBUS协议,且提供RS232C和RS485通信口供用户选择,通过PLC和变频器通信的方式完成控制比较简单经济,显得系统比较,下面简单介绍其协议:

  1.  支持MODBUSRTU和ASCII格式;

  2.   参数的MODBUS协议地址影射规则:变频器的功能码参数、控制参数和状态参数都映射为Modbus的读写寄存器。变频器功能码的组号映射为寄存器地址的高字节,组内索引映射为寄存器地址的低字节。变频器的控制参数和状态参数均虚拟为变频器功能码组。功能码组号与其映射的寄存器地址高字节的对应关系如下:F0组:0x00;F1组:0x01;F2组:0x02;F3组:0x03;F4组:0x04;F5组:0x05;F6组:0x06;F7组:0x07;F8组:0x08;F9组:0x09;FA组:0x0A;Fb组:0x0B;FC组:0x0C;Fd组:0x0D;FE组:0x0E;FF组:0x0F;FH组:0x10;FL组:0x11;Fn组:0x12;FP组:0x13;FU组:0x14;变频器控制参数组:0x32;变频器状态参数组:0x33。例如变频器功能码参数F3.02的寄存器地址为0x302,变频器功能码参数FF.01的寄存器地址为0xF01。

  3.  支持的功能码如下:

功能码

功能码意义

0x03

读取变频器功能码参数和运行状态参数

0x06

改写单个变频器功能码或者控制参数,掉电之后不保存

0x08

线路诊断

0x10

改写多个变频器功能码或者控制参数,掉电之后不保存

0x41

改写单个变频器功能码或者控制参数,掉电之后保存

0x42

功能码管理

  1.          具体的协议介绍请参考艾默生变频器用户手册;

 


  四、程序流程图

  主设备对从设备的消息查询命令主要分为2大类,连续命令序列和随机命令序列。


  连续命令序列:主设备需要定时或连续向从设备发送的命令序列.特点是周期性,连续性.如PLC对变频器读取运行频率命令,运行状态命令等。

  随机命令序列:主设备不定时或随机向从设备发送的命令序列.特点是不定时性,随机性.如PLC对变频器的启停控制,改写频率或其他参数等。


点击察看原图


  五、程序清单:( 子程序和主程序 )

  本程序主要介绍1台EC20PLC(作为主站)按照MODBUS协议网络对3台变频器(从站号分别是2,3,4)进行通信控制的简单范例,本例中:

  连续命令序列 包括对2,3,4号变频器的运行频率的读取;

  随机命令序列 包括对2,3,4号变频器进行启动,停止,更改频率的命令操作;

  1)     “变频器正转”子程序清单如下:

  //主程序中用M1993作为各发送辅助使能,主要用于 MODBUS指令的上升沿触发无其他用

  LD                LM0 //位输入参数型—发送辅助使能

  RST              SM135     //复位成功标志

  RST              SM136     //复位失败标志

  LD                SM0       //运行标志

  MOV             Z0 V9      //保存Z0值到V9

  MOV             V0 V10     //从机地址

  MOV             16#6 V11     //功能码

  MOV             16#32 V12  //寄存器地址高字节

  MOV             16#0 V13   //寄存器地址低字节

  MOV             1 V14      //写入数据高字节

  MOV             16#C7 V15   //写入数据低字节

  //以下把发送数据转移到D7940-D7945里

  LD                SM0 

  MOV             0 Z0

  LD                SM0

  FOR              6

  MOV             V10Z0 D7940Z0

  INC               Z0

  NEXT

  //发送接收数据,数据放在D7970开始区域    

  LD                LM0

  MODBUS      1  D7940   D7970  

  RST              LM0   //马上复位发送辅助使能

  //无论成功失败都还原Z0值

  //当然这里省略了错误报告的处理

  LD                SM135

  OR                SM136

  EU               //上升沿

  MOV             V9 Z0 

  2)      “停机”子程序(省略)

  3)     “设定频率”子程序(省略)

  4)     “读取运行频率”子程序(省略)

  5)   主程序清单:

  //******以下为通信逻辑处理部分******

  LD                SM1  //运行周期脉冲

  //***这里省略了检查从机准备好否的环节***

  //***程序里设计了3个连续命令序列***

  RST              M6 //复位连续命令序列1使能标志

  RST              M7 //复位连续命令序列2使能标志

  RST              M8 //复位连续命令序列3使能标志

  ED //下降沿

  //置位连续命令序列1使能标志,以开始第1条连续命令执行

  SET              M6 

  //***程序里设计了共9个随机命令序列***

  //只要有至少1个随机命令, // M1000=ON,表示有随机命令等待,这样在连续命令切换时优先执行随机命令系列.

  LD                M0  //随机命令序列1使能标志

  OR                M1   //随机命令序列2使能标志

  OR                M2   //随机命令序列3使能标志

  OR                M3  //随机命令序列4使能标志

  OR                M4   //随机命令序列5使能标志

  OR                M5   //随机命令序列6使能标志

  OR                M9  //随机命令序列7使能标志

  OR                M10  //随机命令序列8使能标志

  OR                M11 //随机命令序列9使能标志

  SET              M1000  

  //所有随机命令都处理完成后, M1000=OFF,表示随机命令完成,则连续命令可以正常切换。

  LDI               M0

  ANI               M1

  ANI               M2

  ANI               M3

  ANI               M4

  ANI               M5

  ANI               M9

  ANI               M10

  ANI               M11

  RST              M1000  

  //任何1个连续命令未完成时,M1001=ON,标志连续命令在进行,如果有随机命令必须等待。

  LD                M6

  OR                M7

  OR                M8

  SET              M1001

  //连续命令处于切换状态时,M1001=OFF,标志连续命令完成,如果有随机命令可以进行。

  LDI               M6

  ANI               M7

  ANI               M8

  RST              M1001

  //每1个连续命令完成且无随机命令等待时,启动延时T0 100MS,以便切换下1个连续命令执行

  LD                M100     //连续命令1完成标志

  OR                M101    //连续命令2完成标志

  OR                M102    //连续命令3完成标志

  ANI               M1000

  TON             T0   1   //启动延时T0 100MS

  //******************************************

  //**********以下为3个连续命令序列**********

  //调用“读取运行频率”子程序-2#站,频率存在D1000里;

  //通信成功或失败都复位连续命令序列1使能标志M6,置位完成标志M100,以便进行切换。当然这里省略了失败的处理子程序;

  //延时T0时间后,执行连续命令2序列,置位连续命令2序列使能标志M7;

  LD                M6     //连续命令序列1使能

  MPS

  EU

  SET              M1993 //发送前置位发送辅助标志

  MRD

  CALL             读取运行频率   2  M1993   D1000

  //参数注释:站地址,发送辅助位,频率存放地址

  MPP

  ANB

  RST              M6   

  SET              M100

  LD                T0     

  AND             M100  

  EU

  RST              M100  //复位连续命令1完成标志

  SET              M7   

  //调用“读取运行频率”子程序-3#站,频率存在D1001里;

  //通信成功或失败都复位连续命令序列2使能标志M7,置位完成标志M101,以便进行切换。当然这里省略了失败的处理子程序;

  //延时T0时间后,执行连续命令3序列,置位连续命令3序列使能标志M8;

  LD                M7 //连续命令2序列使能

  MPS

  EU

  MRD

  CALL             读取运行频率 3   M1993  D1001

  //参数注释:站地址,发送辅助位,频率存放地址

  MPP

  ANB

  RST              M7   //复位使能标志

  SET              M101 //置位完成标志

  LD                T0 

  AND             M101

  EU

  RST              M101 //复位连续命令2完成标志

  SET              M8   //置位连续命令3使能标志

  //调用“读取运行频率”子程序-4#站,频率存在D1002里

  //通信成功或失败都复位连续命令序列3使能标志M8,置位完成标志M102,以便进行切换。当然这里省略了失败的处理子程序;

  //延时T0时间后,重新执行连续命令1序列,置位连续命令1序列使能标志M6;

  LD                M8   //连续命令3序列使能

  MPS

  EU

  SET              M1993

  MRD

  CALL             读取运行频率 4  M1993   D1002

  //参数注释:站地址,发送辅助位,频率存放地址

  MPP

  ANB

  RST              M8

  SET              M102

  LD                T0

  AND             M102

  EU

  RST              M102

  SET              M6

  //******************************************

  //**********以下是9个随机命令序列***********

  //9个随机命令思路都一样;

  //随机命令使能标志置位后,若连续命令处于切换状态,则可进入发送状态,否则只有等待;

  //发送时先置位发送辅助位M1993,调用子程序进行发送和接收;

  //无论通信成功或失败都复位各自的随机命令使能标志,当然这里仍然省略了通信错误处理程序;

  //如果所有的随机命令都完成,则随机命令等待标志M1000=OFF;

  //调用“频率设定”子程序-2#站

  LD                M9     //随机命令序列7使能标志

  ANI               M1001 //判断连续命令处于切换状态时

  MPS

  EU

  SET              M1993 //置位发送辅助位

  MRD

  CALL             运频设定2  D1100  M1993

  //参数注释:站地址,设定频率,发送辅助位

  MPP

  ANB

  RST              M9     //复位随机命令序列7使能标志

  //调用“频率设定”子程序-3#站

  LD                M10    //随机命令序列8使能标志

  ANI               M1001 //判断连续命令处于切换状态时;

  MPS

  EU

  MRD

  CALL             运频设定3  D1101  M1993

  //参数注释:站地址,设定频率,发送辅助位

  MPP

  ANB

  RST              M10

  //调用“频率设定”子程序-4#站

  LD                M11 /随机命令序列9使能标志

  ANI               M1001

  MPS

  EU

  MRD

  CALL             运频设定  4 D1102  M1993

  //参数注释:站地址,设定频率,发送辅助位

  MPP

 

  ANB

  //调用“正转开机”子程序-2#站

  LD                X11   //开机按扭

  EU

  SET              M0   //随机命令序列1使能标志

  LD                M0

  MPS

  EU

  MRD

  CALL             正转开机  2   M1993

  //参数注释:站地址,发送辅助位

  MPP

  ANB

  RST              M0

  //调用“正转开机”子程序-3#站

  LD                X12   //开机按扭

  EU

  SET              M1   //随机命令序列2使能标志

  LD                M1

  MPS

  EU

  MRD

  CALL             正转开机  3  M1993

  //参数注释:站地址,发送辅助位

  MPP 

  ANB

  RST              M1

  //调用“正转开机”子程序-4#站

  LD                X13   //开机按扭

  EU

  SET              M2   //随机命令序列3使能标志

  LD                M2

  MPS

  EU

  MRD

  CALL             正转开机 4   M1993

  //参数注释:站地址,发送辅助位

  MPP

  ANB

  RST              M2

  //调用“停机”子程序-2#站

  LD                X14 //停机按扭

  EU

  SET              M3   //随机命令序列4使能标志

  LD                M3

  MPS

  EU

  MRD

  CALL             停机  2   M1993

  //参数注释:站地址,发送辅助位

  MPP

  ANB

  RST              M3

  //调用“停机”子程序-3#站

  LD                X15   //停机按扭

  EU

  SET              M4   //随机命令序列5使能标志

 

  LD                M4

  MPS

  EU

  MRD

  CALL             停机  3   M1993

  //参数注释:站地址,发送辅助位

  MPP

  ANB

  RST              M4

  //调用“停机”子程序-4#站

  LD                X16   //停机按扭

  EU

  SET              M5   //随机命令序列6使能标志

  LD                M5

  MPS

  EU

  MRD

  CALL             停机 4  M1993

  //参数注释:站地址,发送辅助位

  MPP

  ANB

  RST         M5

  六、程序说明:

     例程设计时实际在连续命令序列切换的间隙停留了100MS的时间,这就是说程序中的连续序列是间歇性的;如果要采用非间歇性的连续序列,把中间的延时部分去掉就可以了。

  

  七、结论

  本例程所阐述的通信序列逻辑处理的方法在笔者的一些项目中得到实际应用,效果也达到预期设想,运行比较稳定,这种PLC通过通信的方式对多台变频器通信的方法在实际应用中有很大的参考价值,不仅能够充分利用EMERSONPLC和变频器的硬件资源达到节省成本的目的,更易于进行整个系统的整合。



 PLC作为一种高效、灵活、可靠的控制器,已经广泛地应用在包括数字逻辑控制、运动控制、闭环过程控制、数据处理和联网通信等工业控制领域。在联网通信方面,PLC与上位计算机设备一起,可以组成“集中管理、分散控制”的分布式工业控制系统。在这种控制系统中,PLC与上位机的通信对系统整体性能有着较大的影响。面对众多厂家不同类型的PLC,它们在功能编程上没有统一的标准在通信协议上也是千差万别,选择一种即能满足通信要求又经济实用的通信协议是非常关键的。本文以S7-200PLC为对象,详细研究了S7-200PLC在自由端口模式下与PC之间的通信方法,并采用.net环境下的C#语言编写通信程序实现了计算机与PLC之间的通信。这种通信方式硬件投入低,通信协议灵活,可以在多个工业控制领域得到广泛的应用。

1 S7-200 PLC与上位机的通信方式
       S7-200系列PLC与上位机进行通信主要有以下几种方式:(1)通过S7-200 PLC的OPC服务器(pcaccess)作为上位机的OPC服务器,这种方式只须在OPC服务器中配置相应的测点数据,编程简单,但通信速率不高,用户不能自由修改通信协议;(2)利用触摸屏,这种方式需要根据触摸屏兼容的通信协议进行选择,通信可靠性高,但灵活性差,触摸屏界面编程功能也不够强大;(3)利用通用编程软件实现,这种方法系统开发工作量大,对技术人员的水平和经验都要求较高,但编程灵活,可以实现比较复杂的功能。本文采用了第三种通信方式,在开发通信软件时考虑了S7-200PLC所特有的一种通信方式—自由口通信模式。在自由口模式下用户可自定义协议,利用串口和PLC的通信口来收发数据,通信功能完全由用户程序控制,通信任务和信息定义均需由用户编程实现,通过调用子程序来进行接收中断、发送中断、发送指令(XMT)、接收指令(RCV)等通信控制操作。

2 自由口通讯工作模式的定义
       在中小规模系统,通信速率要求不是特别高的情况下,S7-200PLC自带的编程口可以作为通信口使用。S7-200PLC编程软件与PLC进行通信所利用的PPI协议实质也是一种RS-485通信,它可在多种模式下工作,其中自由口通信功能是S7-200PLC的一个独特的功能。在自由口通信方式下,S7-200PLC可以与任何协议公开的设备、控制器进行通信,高波特率可达38.4kbit/s。一般上位机串行口符合RS-232C标准协议,为了与PLC的RS-485通信则必须进行协议转换。在PLC编程方面,自由口模式下的通讯协议主要就是自由口通信工作模式控制字的定义以及发送和接受数据指令的格式约定及其参数设置等。

 


2.2  接收指令(RCV)
       RCV(接收指令)从S7-200PLC的通讯口接收一个或多个数据字节。接收的数据字节保存在接收数据缓冲区中。接收指令完成后,会产生一个中断事件(对Port0为中断事件23,对Port1为中断事件24)。启动接收指令后,CPU的通讯控制器就处于接收状态。使用接收指令时需要设置消息起始和结束的判断条件,通讯控制器用这些条件来判断消息的开始和结束。当判断消息结束时接收状态终止,否则通讯口会一直处在接收状态。由于S7-200PLC的自由口通讯是建立在RS-485半双工通讯的基础上,接收和发送不能进行,接收指令不结束,就不能执行发送指令。对几个重要的特殊存储区设置举例如下:
MOVB   16#EC, SMB87(允许接受,检测起始字符和结束字符,超时检测)
MOVB   104, SMB88(发送报文起始字符为h)
MOVB   72, SMB99(结束字符为H)
MOVB   +1000, SMB92(接受超时时间为1s)
MOVB   35, SMB94(接受大字符数为35)
2.3  发送指令(XMT)
         XMT发送指令利用数据缓冲区指定要发送的字符,用于向指定通信口以字节为单位发送一串数据字符,发送命令格式为 XMT TABLE,PORT,其中TABLE为数据存储区地址,PORT指定PLC要发送数据的端口。一次多发送255个字节。XMT发送指令完成后,会产生一个中断事件(Port0为中断事件9,Port1为中断事件26)也可以监视发送完成状态位SM4.5和SM4.6的变化来产生XMT中断。

点击察看原图

3 S7-200 PLC 通信程序设计
3.1  通信程序流程
       本程序中S7-200CPU从通讯端口0接收字符串,使用RCV指令和接受完成中断接受数据,以自定义协议来实现计算机与S7-200PLC之间的数据通信时,为了避免通信中的各方争用通信线路,一般采用主从方式,即计算机作为主机,向作为从站的S7-200PLC端口0发送规定格式的报文。
        当S7-200PLC接收到指令后进行相关的数据校验,这里采用BBC校验方式,即将每一帧的个字节(不包括起始字符)到该帧中正文校验码之前的所有字节作异或运算(本例中是从VB101到VB130),并将校验码作为报文一部分发送到计算机。在PLC接收端也要对接收缓冲区的数据进行BBC校验,与指令中的校验码比较,如果校验码相等则置位M0.0,PLC执行命令并将所接收到的数据反馈给计算机;如果校验码不相等,则置位M0.1并返回带有校验码错误的反馈信息,通信流程图如图1所示。
     

点击察看原图

          
图 1 PLC通信流程图
3.2  通信帧格式约定
       计算机每次发送一个33字节的指令来实现一次读写操作。每条指令都包括起始字符、结束字符、目标站地址、目标寄存器地址、要读写的字节数、要写入的数据和校验码。S7-200PLC接收到计算机发送来的数据,先存放在PLC的接收缓冲区,设定以VB100开始。自定义的接收缓冲区的数据设计格式见表1
表 1 PLC接收数据缓冲区
VB100 接收到的字节数
VB101 起始字符
VB102 指令类型(读/写)
VB103 VB104 目标站地址
VB105~VB112 目标寄存器地址
VB113 VB114 读写字节数
VB115~VB130 要写入的数据
VB131 VB132 校验码
VB133 结束字符

      为避免在通信中由于指令中的起始字符或者结束字符与传输的数据有重复而导致PLC的误动作,这里采用文本传送二进制数据,即通过以16进制的ASCII码的格式来描述数据,让每个二进制的字节都表示成一对ASCII编码的16进制字符。比如48H可表示为34H、38H两个字节。指令类型自定义为05H代表读操作,06H代表写操作。目标寄存器地址采用四个字节表示,前两个字节表示寄存器类型,后两个表示寄存器号,例如:VB101的地址可表示为0800 00 65,其中“08 00”表示V寄存器区,“0065”表示寄存器号101。目标寄存器地址表示方法如表2所示:

点击察看原图

PLC接收上位机的指令后会返回一个21字节的反馈信息。自定义的发送缓冲区的格式如表3所示:
表 3 PLC发送缓冲区格式
VB153 VB154 VB155 VB156~VB171 VB172VB173 VB174
发送字符数 起始字符 状态信息 发送数据区 校验码 结束字符

      其中VB155状态信息的格式定义为:01H代表读入正确,02H代表写入正确,03H代表校验码错误,04H代表指令不合法。
3.3  主要程序设计
      本系统PLC程序设计采用模块化设计,主要包括主程序、初始化子程序、读子程序、写子程序、校验子程序、接收完成中断程序和发送完成中断程序。
      主程序负责判断读写条件和调用各个子程序,具体包括判断PLC运行模式;调用初始化子程序;判断本机站号、指令类型和校验码等是否符合读写程序;调用读、写子程序;接收数据等。
      在初始化子程序中主要设置一些通信参数和RCV接收参数并开启接收完成中断0和发送完成中断1。在读写子程序中根据接收到的指令信息读取目标寄存器数据或者把数据写入目标寄存器中,并利用XMT发送反馈信息到计算机。读写程序如下:
读子程序:
LD   SM0.0
R    SM87.7, 1  (禁止接收)
R    M0.0    (复位校验位)
RCV    VB100, 0
MOVB  103, VB154  (送返回信息起始字符为g)
MOVB  1, VB155    (状态信息读取正确)
HTA   *VD135,VB156,16(将要读取的数据做16进制转ASCII码转换)
MOVB  71, VB174    (结束字符为G)
MOVB  21,VB153  (发送字节数为21个字节)
……   (校验发送数据)
LD    SM4.5(端口0发送空闲时置1)
XMT  VB153, 0
写子程序与读程序类似,只是要对写入的数据做ASCII码转换:
MOVD  &VB115, VD145(装入要写的数据源的地址指针)
ATH   *VD145, *VD135, VB139(对要写入的数据做ASCII码转16进制转换)
……
XMT  VB153, 0

4 上位机C#编程
       在bbbbbbS环境下开发与PLC的通信软件,利用.net环境下的通信组件SerialPort [3] 实现通信,并用 Visual C#编写软件程序。该通信组件提供了使用RS232开发串行通信软件的细则,组件主要属性如表4所示:

 

点击察看原图

      .net环境下的SerialPort组件没有像传统的Visual Basic 6.0中的MSComm.PortOpen =True/False属性,打开关闭串口相应的是调用类的Open()和Close()方法。SerialPort组件读取数据的许多方法是同步阻塞调用,应尽量避免在主线程中调用,可以使用异步处理或线程间处理调用这些读取数据的方法,采用这种方式可以显著提高系统的工作性能,这也是.net环境与VisualBasic 6.0编程环境的不同之处。
SerialPort组件的串口属性要设置成与PLC串口参数相同的数值,例19200bit/s,无检验,1位停止位,8个数据位。触发SerialPort组件接收数据的事件是DataReceived事件,设置ReceivedBytesThreshold为1表示立即接收。由于DataReceived事件在辅线程被引发,而收到完整的数据要在主线程窗体上显示,要用到跨线程处理,在C#中可采用控件异步委托BeginInvoke的方法窗体显示收到的数据。SerialPort接收主要程序如下:
private void serialPort1_DataReceived(bbbbbb sender,SerialDataReceivedEventArgs e)
        {  
int int_Len = serialPort1.BytesToRead;//接收字节数
byte[] bytes2 = new byte[int_Len]; //接收字节
serialPort1.Read(bytes2, 0, int_Len); //读入串口数据
bbbbbb st1 =ToHexbbbbbb(bytes2);  //转换数据为16进制显示
MyInvoke iv1 = new MyInvoke(Display); //异步委托调用显示数据
ReceiveBox1.BeginInvoke(iv1, new bbbbbb[] { st1 });
}
编写的通信界面如图2所示:
 


图 2 PLC串口通信界面
       在这个通信界面下可以自由设置串口参数,当设置好通信参数、命令类型和寄存器参数后,即可发送指令数据,命令类型中05代表读,06代表写。操作界面分为手动发送和定时循环发送,利用自动定时发送可实时的读取PLC中的参数,也可利用手动发送把数据写入PLC或从PLC中读出。发送流程图如下:
   

                   
图 3 计算机发送流程图
5 结束语
      本文采用自由口通信方式实现了计算机和PLC的通讯,上位机采用C#开发通信软件。由于自由端口模式通信用户投资较低,编程时可以自定义通信协议并能灵活的与各种通信设备通信,且PLC程序具有模块化、结构化的特点,各种子程序可移植性好,在各种分布式控制系统和需要计算机处理数据的场合中会得到很好的运用和发挥。

6 参考文献


所属分类:中国电工电气网 / PLC
关于浔之漫智控技术-西门子PLC代理商商铺首页 | 更多产品 | 联系方式 | 黄页介绍
成立日期2019年09月10日
法定代表人袁宜男
注册资本500
主营产品西门子PLC模块,变频器,触摸屏,交换机
经营范围从事智能科技、自动化科技、机电领域内的技术开发、技术转让、技术咨询、技术服务,工业自动化设备安装,工业自动化控制设备、电气设备、机申设备、电子产品、五金产品、金属材料、仪器仪表、橡塑制品销售,商务信息咨询,软件开发,建筑装修装饰建设工程专业施工,建筑安装工程(除特种设备),机械设备租赁(不得从事金融租赁),物业管理。工业自动化设备加工、销售。
公司简介本公司销售的一律为原装正品,假一罚十,可签正规的产品购销合同,可开增值税发票,税点另外算,24小时销售热线:15221406036本公司销售的一律为原装正品假一罚十可签正规的产品购销合同可开增值税发票税点另外算24小时销售热线15221406036西门子触摸屏代理商,西门子一级代理商,西门子中国授权总代理----浔之漫智控技术(上海)有限公司本公司专业经销合信/CO-TRUST科思创西门子PLC; ...
公司新闻
相关报价
西门子模块
顺企网 | 公司 | 黄页 | 产品 | 采购 | 资讯 | 免费注册 轻松建站
免责声明:本站信息由企业自行发布,本站完全免费,交易请核实资质,谨防诈骗,如有侵权请联系我们   法律声明  联系顺企网
© 11467.com 顺企网 版权所有
ICP备案: 粤B2-20160116 / 粤ICP备12079258号 / 粤公网安备 44030702000007号 / 互联网药品信息许可证:(粤)—经营性—2023—0112