dujiang100
我是一只小小鸟
级别: 家园常客
精华主题: 0
发帖数量: 440 个
工控威望: 642 点
下载积分: 1895 分
在线时间: 243(小时)
注册时间: 2011-03-11
最后登录: 2024-05-22
查看dujiang100的 主题 / 回贴
楼主  发表于: 2016-03-23 17:29
   最近在研究VB跟欧姆龙CP1H的通信.了解到可以用串口进行HOSTLINK通信,还可以用以太网进行FANS通信.CP1H没有网口所以不可以用FANS通信吗?串口通信情况下,PLC处于运行时写入不了数据,只有当PLC是监控状态时才能写入.这怎么能达到随时写入的目的呢?
本帖最近评分记录:
  • 下载积分:+1(56071988)
    xyzenter
    活在当下,顺其自然
    级别: 略有小成
    精华主题: 0
    发帖数量: 135 个
    工控威望: 266 点
    下载积分: 2080 分
    在线时间: 108(小时)
    注册时间: 2014-04-09
    最后登录: 2021-04-13
    查看xyzenter的 主题 / 回贴
    1楼  发表于: 2016-03-28 15:19
          FINS通讯命令,0401可以让PLC进入运行/监控模式,0402可以让PLC进入停止模式。
          实测用0402让PLC停止后还可以用0101和0102对DM区进行读写。
          另:串口的hostlink模式FINS命令只能上位机控制PLC,PLC无法主动发数据给上位机。通过看w227文件,发现FINS帧格式自由度比较高,理论上来讲可以通过修改帧里面的命令符进行PLC通过串口对上位机发送数据,就好像用以太网发送一样。但是欧姆龙PLC说明书里面并没这方面的介绍。目前来说,PLC通过串口主动发数据给上位机发送数据要用无协议通讯。但是无协议通讯的话上位机无法控制PLC的开关状态。小弟刚学欧姆龙通讯,好多东西还不懂,望论坛各位前辈不吝赐教。
    xyzenter
    活在当下,顺其自然
    级别: 略有小成
    精华主题: 0
    发帖数量: 135 个
    工控威望: 266 点
    下载积分: 2080 分
    在线时间: 108(小时)
    注册时间: 2014-04-09
    最后登录: 2021-04-13
    查看xyzenter的 主题 / 回贴
    2楼  发表于: 2016-04-14 11:32
          如果用HostLink通讯,FINS指令,上位机要等待PLC某些步骤准备好,就要上位机监控PLC某位是否是设定值,那就需要不断循环地发读指令,这时候串口一直在工作,上位机程序一直调用串口函数,这样会显得很繁忙,整个程序的资源都被串口收发给占用了,程序经常处在假死状态。这样的程序显然是有很大缺陷的。
          最好的解决办法当然是用中断来代替循环等待。然而,FINS指令无法让PLC主动发送就绪信号,无法提供这个中断。哪位高手有办法解决这个问题?