首页 上一页 1 2 下一页 尾页

松下FP-X控制器用Modbus-RTU协议传送数据 点击:15141 | 回复:24



凹凸曼

    
  • 精华:0帖
  • 求助:1帖
  • 帖子:14帖 | 246回
  • 年度积分:0
  • 历史总积分:2822
  • 注册:2010年7月26日
发表于:2012-08-02 17:08:19
楼主
求助帖10分-已结帖

     大家好,我是一名工控新手,最近在用松下PLC做通讯的时候,遇到很多的迷惑,请各位达人指点迷津。

     最近在做一套在线环境监测的系统,PLC采用松下FP-X C40R,触摸屏为松下GH07X,主要功能为每15分钟进行一个轮回的化学检测,得出一个污水成分含量监测值,同时需要把相关的数据上传到上端数据监控中心。化学检测的动作过程和计算含量值功能都已实现,现在就剩下与上端数据监控中心的数据通讯问题。

     根据规定,我们系统主动发送数据到上端的数据采集仪,数据采集仪负责接收,系统与数据采集仪通信端口为RS232串口,通信协议为Mosbus-RTU。其中我们只负责我们系统数据的发送,上端的数据采集仪未知,我们只需提供相关的通讯参数。

     需要传送的数据包括监测值、每次监测值对应的时间、系统运行状态、系统故障状态,他们在PLC程序中的寄存器地址如下表所示:

   

    传送数据     寄存器地址    数据类型
    运行状态      DT100      整数
    故障状态      DT102      整数
     监测值      DT500      实数
        年      DT200      整数
        月      DT202      整数
        日      DT204      整数
        时      DT206      整数
        分      DT208      整数
        秒      DT210      整数

     首先,笔者先进行PLC软件通信设置,选项-----PLC寄存器设置,进入页面设置COM1口如下:

   

   笔者编的程序如下:    

     年月日时分秒这几个寄存器我想通过位传输指令(F5 BTM  F6 DGT)把它们放到一个寄存器当中去表示年月日时分秒,然后再传送出去,因为篇幅的关系,我想另外开个帖子请教。

     针对上面这些,我心里边有几个疑惑想请教:

    (1)上边通信设置和程序有哪些错误,和需要改进的地方?

    (2)为了使上端数据采集仪能够顺利通过Modbus-RTU协议和我们系统通讯上,我们需要提供哪些参数给对方,我能想到的有这些:

           通讯端口:RS232串口

           通讯协议:Modbus-RTU

           波特率:9600kps

           数据位:8位

           停止位:1位

           检验位:无

           我们系统站号为:1

           数据采集仪站号为:4

           然后就是数据寄存的地址,比如程序中我把监测值DT500传送到4号站的DT304,这个DT304在Modbus里应该怎样表达,对方才能顺利采集到数据。是不是要转化成一个Modbus地址,是不是如下图,下图应该怎么看?:

         

             除了上边这些,还有那些通信参数我应该提供给上端数据采集仪?

    (3)CRC检验码是什么?我们需要提供吗?

     暂时遇到了这些疑惑,恳请各位达人帮我解答一下,不胜感激~!

 

          

 

    




云锋

  • 精华:1帖
  • 求助:4帖
  • 帖子:252帖 | 5541回
  • 年度积分:0
  • 历史总积分:30376
  • 注册:2005年6月24日
发表于:2012-08-02 20:00:34
1楼

没用过松下的PLC,所以具体的通讯程序部分帮不忙。

提供的参数,

通讯端口:RS232串口

           通讯协议:Modbus-RTU

           波特率:9600kps

           数据位:8位

           停止位:1位

           检验位:无

           我们系统站号为:1

这些就可以了。

外加提供一个变量地址及定义表。就是DT*** 然后代表的含义等。

至于modbus地址,你可以在变量表里面备注一栏,将PLC地址所对应的modbus地址填在后面。

青岛黄工

  • [版主]
  • 精华:3帖
  • 求助:54帖
  • 帖子:108帖 | 4776回
  • 年度积分:0
  • 历史总积分:24297
  • 注册:2007年4月02日
发表于:2012-08-03 09:04:44
2楼
松下PLC用MODBUS通讯,用F145发送,F146接受是对的,用MODBUS通讯,就应该按照上面表格找出对方对应的地址,对方是DT304,那么其对应MODBUS地址就是DT400305,系统寄存器中参数设置要一致。

青岛黄工

  • [版主]
  • 精华:3帖
  • 求助:54帖
  • 帖子:108帖 | 4776回
  • 年度积分:0
  • 历史总积分:24297
  • 注册:2007年4月02日
发表于:2012-08-03 09:09:31
3楼
第44步,用R901C同时触发三个F145不好,会造成COM1口发送数据繁忙,建议用F145发送,用F146读回来,如果发送成功再发送下一个。。。。。。。

青岛黄工

  • [版主]
  • 精华:3帖
  • 求助:54帖
  • 帖子:108帖 | 4776回
  • 年度积分:0
  • 历史总积分:24297
  • 注册:2007年4月02日
发表于:2012-08-03 09:21:59
4楼

对FPX系列的MRTC,相应数据在:

通讯网

  • 精华:11帖
  • 求助:1帖
  • 帖子:432帖 | 10265回
  • 年度积分:0
  • 历史总积分:24711
  • 注册:2004年7月09日
发表于:2012-08-03 09:58:19
5楼

首先,你的做法就不对。。。。上位是主,下位是从,你应该上位读,下位响应,而不是下位主动向上位发送数据。

   且“上端的采集仪未知”------这话就说明你很糊涂,上位采集仪未知,你怎么可能通讯呢??需要知道的很多,上位采集仪的速率,波特率,数据位,校验位,停止位,上位采集仪所设定的站号等等。。都要一清二楚,才可以。

凹凸曼

  • 精华:0帖
  • 求助:1帖
  • 帖子:14帖 | 246回
  • 年度积分:0
  • 历史总积分:2822
  • 注册:2010年7月26日
发表于:2012-08-03 12:59:47
6楼
回复内容:
对:云锋关于没用过松下的PLC,所以具体的通讯程序部分帮不忙。提供的参数,通讯端口:RS232串口           通讯协议:Modbus-RTU           波特率:9600kps           数据位:8位           停止位:1位           检验位:无           我们系统站号为:1这些就可以了。外加提供一个变量地址及定义表。就是DT*** 然后代表的含义等。至于modbus地址,你可以在变量表里面备注一栏,将PLC地址所对应的modbus地址填在后面。内容的回复:


谢谢,指点很有用!

凹凸曼

  • 精华:0帖
  • 求助:1帖
  • 帖子:14帖 | 246回
  • 年度积分:0
  • 历史总积分:2822
  • 注册:2010年7月26日
发表于:2012-08-03 13:01:31
7楼
回复内容:
对:青岛黄工关于松下PLC用MODBUS通讯,用F145发送,F146接受是对的,用MODBUS通讯,就应该按照上面表格找出对方对应的地址,对方是DT304,那么其对应MODBUS地址就是DT400305,系统寄存器中参数设置要一致。 内容的回复:


系统寄存器参数设置要一致是什么意思?

凹凸曼

  • 精华:0帖
  • 求助:1帖
  • 帖子:14帖 | 246回
  • 年度积分:0
  • 历史总积分:2822
  • 注册:2010年7月26日
发表于:2012-08-03 13:03:13
8楼

回复内容:
对:青岛黄工关于第44步,用R901C同时触发三个F145不好,会造成COM1口发送数据繁忙,建议用F145发送,用F146读回来,如果发送成功再发送下一个。。。。。。。 内容的回复:


对呀,谢谢指点,可是F146读什么数据回来?


凹凸曼

  • 精华:0帖
  • 求助:1帖
  • 帖子:14帖 | 246回
  • 年度积分:0
  • 历史总积分:2822
  • 注册:2010年7月26日
发表于:2012-08-03 13:03:49
9楼
回复内容:
对:青岛黄工关于对FPX系列的MRTC,相应数据在:内容的回复:


这个很有用!谢谢

凹凸曼

  • 精华:0帖
  • 求助:1帖
  • 帖子:14帖 | 246回
  • 年度积分:0
  • 历史总积分:2822
  • 注册:2010年7月26日
发表于:2012-08-03 13:07:27
10楼

回复内容:
对:通讯网关于首先,你的做法就不对。。。。上位是主,下位是从,你应该上位读,下位响应,而不是下位主动向上位发送数据。   且“上端的采集仪未知”------这话就说明你很糊涂,上位采集仪未知,你怎么可能通讯呢??需要知道的很多,上位采集仪的速率,波特率,数据位,校验位,停止位,上位采集仪所设定的站号等等。。都要一清二楚,才可以。内容的回复:


我就是要把我的这个系统做成一个类似市场上那些带Modbus-RTU通讯的仪器仪表,你看那些仪器仪表只需要提供相关的通讯参数,任何一个支持Modbus-RTU协议品牌的PLC都可以通过通信读取仪器仪表的数据。

 

通讯网

  • 精华:11帖
  • 求助:1帖
  • 帖子:432帖 | 10265回
  • 年度积分:0
  • 历史总积分:24711
  • 注册:2004年7月09日
发表于:2012-08-03 14:26:13
11楼

回复内容:
对:凹凸曼关于回复内容:对:通讯网关于首先,你的做法就不对。。。。上位是主,下位是从,你应该上位读,下位响应,而不是下位主动向上位发送数据。   且“上端的采集仪未知”------这话就说明你很糊涂,上位采集仪未知,你怎么可能通讯呢??需要知道的很多,上位采集仪的速率,波特率,数据位,校验位,停止位,上位采集仪所设定的站号等等。。都要一清二楚,才可以。内容的回复:我就是要把我的这个系统做成一个类似市场上那些带Modbus-RTU通讯的仪器仪表,你看那些仪器仪表只需要提供相关的通讯参数,任何一个支持Modbus-RTU协议品牌的PLC都可以通过通信读取仪器仪表的数据。 内容的回复:


现在这个FPX就已经可以啊。。。你把你的FPX设置成modbus从站,别人就可以读取你所有的内容了,


通讯网

  • 精华:11帖
  • 求助:1帖
  • 帖子:432帖 | 10265回
  • 年度积分:0
  • 历史总积分:24711
  • 注册:2004年7月09日
发表于:2012-08-03 14:31:15
12楼
引用 凹凸曼 的回复内容:回复内容:对:青岛黄工关于第44步,用R901C同时触发三个F145不好,会造成COM1口发送数据繁忙,建议用F145发送,用F146读回来,如果发送成功再发送下一个。。。。。。。 内容的回复:对呀,谢谢指点,可是F146读什么数据回来?



你看他很二,急于表现。连题目是什么都没有看清楚,就急于胡说,呵呵呵。

通讯网

  • 精华:11帖
  • 求助:1帖
  • 帖子:432帖 | 10265回
  • 年度积分:0
  • 历史总积分:24711
  • 注册:2004年7月09日
发表于:2012-08-03 20:26:56
13楼

你要是把FPX用作modbus从站,你甚至都不用编程,只要把站号,通讯参数设置好,把PLC打到运行状态。就行了!!!你可以通过modbus上位程序读取PLC的任何节点,X,Y,R,DT,等等。。。任何一个节点。。。地址参考上图。。。它可以作为modbus总线的远程模块。。不用任何编程。。。

 

你给西门子增加一个扩展模块,模块需要编程么??不需要吧??   ---同样 fpx作为从站,也就相当于一个扩展模块,不用编程就可以工作。

凹凸曼

  • 精华:0帖
  • 求助:1帖
  • 帖子:14帖 | 246回
  • 年度积分:0
  • 历史总积分:2822
  • 注册:2010年7月26日
发表于:2012-08-06 11:18:59
14楼

回复内容:
对:通讯网关于你要是把FPX用作modbus从站,你甚至都不用编程,只要把站号,通讯参数设置好,把PLC打到运行状态。就行了!!!你可以通过modbus上位程序读取PLC的任何节点,X,Y,R,DT,等等。。。任何一个节点。。。地址参考上图。。。它可以作为modbus总线的远程模块。。不用任何编程。。。 你给西门子增加一个扩展模块,模块需要编程么??不需要吧??   ---同样 fpx作为从站,也就相当于一个扩展模块,不用编程就可以工作。内容的回复:


你说的很有道理,不过按照我们出厂设备的通信要求,是需要我们设备主动上传数据,上位数据采集仪器负责接收,所以我觉得我们可能还是需要主动上传。请教一个问题,按照青岛黄工的说法,一次发送三个F145指令会造成通讯繁忙,如果我把监测值、运行状态、故障状态、年月日时分秒等寄存器全部移位到一个连续的寄存器中,然后发送多字节的F145命令,只需要一条F145就可以解决全部数据通讯问题,这样可行不,可不可以指导一下。

~其实

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 8回
  • 年度积分:0
  • 历史总积分:168
  • 注册:2016年8月28日
发表于:2016-10-31 12:47:34
15楼


回复内容:

对: 青岛黄工 松下PLC用MODBUS通讯,用F145发送,F146... 内容的回复!

 

黄工,我在工控网经常看到你的帖子及回复内容,

现有个问题困扰着我,想麻烦你释疑,

这是我写的一段程序 走MODBUS RTU协议,用的是松下的PLC,读取ZW3432B电压参数,请指教,通讯等都是在闪,但是监控寄存器的数据都是不显示实际参数,显示0


longxuesong

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 9回
  • 年度积分:0
  • 历史总积分:9
  • 注册:2015年9月22日
发表于:2016-12-06 14:54:51
16楼


回复内容:

对: 凹凸曼 回复内容:对:青岛黄工关于松下PLC用MODBUS通讯... 内容的回复!

寄存器设置要一致意思是你这边跟上面数据采集仪通讯的波特率,数据位停止位检验位等都要一致,不一致还传个锤子

庞树恒

  • 精华:0帖
  • 求助:0帖
  • 帖子:26帖 | 463回
  • 年度积分:0
  • 历史总积分:512
  • 注册:2003年12月27日
发表于:2017-03-10 17:39:53
17楼

bo6600600

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 81回
  • 年度积分:0
  • 历史总积分:0
  • 注册:1900年1月01日
发表于:2017-03-16 14:04:29
18楼

发送时要逐个发送,不能同时触发F145 或地F146 指令。

silky_56

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 1828回
  • 年度积分:0
  • 历史总积分:66
  • 注册:2003年8月15日
发表于:2018-04-01 15:52:56
19楼

楼主辛苦了 感谢分享

modbus_tcp

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 55回
  • 年度积分:0
  • 历史总积分:102
  • 注册:2018年4月23日
发表于:2018-04-24 19:28:30
20楼
RS485? 松下的通讯,有些不好弄

热门招聘
相关主题

官方公众号

智造工程师
    首页 上一页 1 2 下一页 尾页