RSS

自由口模式下S7-200PLC与计算机的通信

来源: 作者: 时间:2007-10-31 Tag: 点击:
  • 数据区
    ----反馈信息的B3到B18为读指令所要读取的数据,以十六进制ASCII码表示。
  • BCC校验码
    ----与上位机指令中的BCC校验码类似,它是反馈信息B3到B18的异或和。
  • 结束字符
    ----结束字符标志着反馈信息的结束,在本例中被定义为26H。
  • 指令中为何要使用ASCII码
    ----一条指令除包含数据外,还包含必要的控制字(起始字符、结束字符、指令类型等)。如果指令中的数据直接以其原本的形式传输,则不可避免的会与指令中的控制字发生混淆。
    ----例如本例中,指令的起始字符为"g",其ASCII码值为67H,结束字符为"G",其ASCII码值为47H。假设要写入的数据中也有47H,并且数据直接以其原本的形式传输,则PLC会因为接收到了数据中的47H而停止接收,这样PLC接收到的指令将是一个不完整的非法指令,很可能造成PLC的误动作。 字串6
    ----为了避免这种情况的发生,可以用文本来传送二进制数据。通过以16进制ASCII码的格式描述数据,每个二进制的字节都可以表示成一对ASCII编码,这对编码表示这个字节的两个16进制字符。这种格式可以表示任何的数值,仅仅使用ASCII代码的30H到39H(表示0到9)和41H到46H(表示A到F)。ASCII码的其余部分可以用作控制字(起始标志、结束标志、指令类型等)。这样,数据中的47H以ASCII码的形式进行传送就变成了34H 37H 两个字节,从而避免了PLC因接收到数据中的47H而停止接收的错误。

    字串8

    表1 上位机指令格式

    Byte0 起始字符
    Byte1 指令类型(读/写)
    Byte2 目标PLC站地址(十六进制ASCII码)
    Byte3
    Byte4 目标寄存器地址(十六进制ASCII码)
    Byte5
    Byte6
    Byte7
    Byte8
    Byte9
    Byte10
    Byte11
    Byte12 读/写字节数M(十六进制ASCII码)
    Byte13
    Byte14 要写入的数据(十六进制ASCII码)
    Byte15
    Byte16
    Byte17
    Byte18
    Byte19
    Byte20
    Byte21
    Byte22
    Byte23
    Byte24
    Byte25
    Byte26
    Byte27
    Byte28
    Byte29
    Byte30 BCC校验码(十六进制ASCII码)
    Byte31
    Byte32 结束字符
    字串7

                                                              表2 反馈信息格式

    Byte0 起始字符
    Byte1 状态信息
    Byte2 数据区(十六进制ASCII码)
    Byte3
    Byte4
    Byte5
    Byte6
    Byte7
    Byte8
    Byte9
    Byte10
    Byte11
    Byte12
    Byte13
    Byte14
    Byte15
    Byte16
    Byte17
    Byte18 BCC校验码(十六进制ASCII码)
    Byte19
    Byte20 结束字符
    字串1
    字串2

    被过滤广告 PLC程序执行过程
    ----PLC在第一次扫描时执行初始化子程序,对端口及RCV指令进行初始化。初始化完成后,运行RCV指令使端口处于接受状态。
    ----RCV会将以"g"开头"G"结尾的指令保存到接收缓冲区,并同时产生接收完成中断。
    ----RCVcomplete中断服务程序用来处理接收完成中断事件,它会将接收缓冲区中的十六进制ASCII码还原成数据并保存,同时置位Verify子程序的触发条件(M0.1)。 ----Verify子程序首先复位本身的触发条件以防止子程序被重复调用,然后求出接收缓冲区中指令的BCC校验码并与指令中的BCC校验码进行比对。如果相等则置BCC码校验正确的标志位(M0.0)为1;如果指令格式正确(指令的结束标志在接收缓冲区中特定的位置VB133)而BCC码不相等,则发送代表BCC校验码错误的反馈信息;如果指令格式不正确(VB133中不是指令的结束标志),则返回代表指令格式错误的反馈信息。

    字串1


    ----Read子程序的触发条件为:指令中的站地址与本机站地址相符、指令类型为读指令、BCC检验码正确。当条件满足时,Read子程序被执行。Read子程序首先禁止RCV,然后将指令所要读取的数据转换成十六进制ASCII码并写入发送缓冲区、计算BCC检验码、最后发送反馈信息。
    ----Write子程序的触发条件为:指令中的站地址与本机站地址相符、指令类型为写指令、BCC检验码正确。当条件满足时,Write子程序被执行。Write子程序首先禁止RCV,然后将指令中的数据写入目标寄存器,最后发送代表写入正确的反馈信息。
    ----PLC每接到一条指令后都会发送一条反馈信息,当反馈信息发送完成时,会产生发送完成中断,XMTcomplete中断服务程序用来处理发送完成中断事件。在XMTcomplete中断服务程序中所要执行的操作包括:复位BCC校验码正确的标志位(M0.0);允许RCV;bcc码寄存器清零;重新装入用于计算BCC校验码的地址指针;接收缓冲区中存放指令结束字符的字节VB133清零(用来判断下一条指令格式是否正确)。 字串6

     PLC寄存器地址分配
    ----此程序占用PLC寄存器的VB100-VB199,内部继电器占用M0.0和M0.1。寄存器地址分配见表3、表4、表5、表6。

    上一页 1 23 4 下一页
    Google
    上一篇:没有了
    下一篇:AB PLC 中文教程——熟悉硬件
    最新评论共有 0 位网友发表了评论
    发表评论
    评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
    用户名: 密码:
    匿名?
    注册