modbus通讯如何设置同步时钟

226做modbus从站与第三方设备通讯。将PLC内部时钟信息放到缓冲区以便对方读取,查看时间是否正确。若不正确,对方会发送年月日时分秒的数据,同步我PLC的内部时钟。我的问题是:
1。因为不知道对方何时发来时间信息,也有可能发其他信息过来。我用的指令库编程,不知道怎样判断发送来的是时间信息。
2。用指令库编程,怎样查看对方发送命令中的功能码?

问题补充:
多谢一楼的回答。Modbus指令库我也研究过了。
1。但是对方已经把modbus地址规定好了,发送读取的时间信息都在同一个地址里面,所以我想依靠查看功能码的方式来判断,是放数据进缓冲区,还是从缓冲区拿数据。
2。对方发来时间数据同步我PLC,有什么比较好的触发TODW的方法呢? 我本来用的是SMB86的上升沿,但如果对方发来的其他信息,也会触发SMB86,似乎不对。请教!

最佳答案

感觉你们的做法是有矛盾的,不如协商一下,就以主站的时间为准,主站写时间到从站,就不读取了。
另一种方法就是不要用从站库。

第一个问题:
先看看以下内容:
HoldStart处填写的就是保持寄存器V起始地址,
如果是&vb100, 那么保持寄存器(V)第一个地址就是VW100,
如果是&vb1000,那么保持寄存器(V)第一个地址就是VW1000,

MaxHold处填写的是可供主站读写的保持寄存器VW的数量

如果HoldStart=&vb100,MaxHold=10,那么地址对应如下:
VW100    40001   
VW102    40002   
VW104    40003   
VW106    40004   
VW108    40005   
VW110    40006   
VW112    40007   
VW114    40008 
VW116    40009   
VW118    40010 
共10个

如果HoldStart=&vb300,MaxHold=100,那么地址对应如下:
VW300    40001   
VW302    40002   
VW304    40003
...
VW498    40100  
共100个


如果你做modbus从站,那么你可以将主站需要的数据,存放在保持寄存器里(HoldStart=&vb300)
如果VW300是A相电压,VW302是B相电压,VW304是C相电压,VW306是A相电流,VW308是B相电流,VW310是C相电流,那么你告诉对方如下的通讯协议:
40001   A相电压
40002   B相电压
40003   C相电压
40004   A相电流
40005   B相电流
40006   C相电流

以上看明白了,就知道怎么做了,
你可以将PLC时间放置到你设定的地址区域,比如40020为小时,40021为分钟,40021为秒钟,
将其他地址放置主站送过来的时间。

第二个问题:
用指令库编程,不需要知道主站发送的信息功能码。

提问者对于答案的评价:

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc316253.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月1日 下午4:19
下一篇 2020年11月1日 下午4:19

相关推荐

  • S7-224最多能接多少模拟量的输入

    各位:昨天发了一个贴子,咨询多个采集点选择PLC的问题。一位前辈给了一个成本低的方案。然后我在看了一下相关有点迷糊了,还想请教一下如下:前辈给出的方案:一个224接7个8通道的扩展…

    SIMATIC S7-200 2020年10月31日
  • PLC200 cpu224xp做modbus主站接收从站数据并将数据转化编程的问题

    各位老师,modbus通信中,从站发过来的是一个十六进制数,我这边需要将此十六进制高字节和低字节分别拆开,分别转化成十进制数,相应值= (高字节*256 +低字…

    SIMATIC S7-200 2021年7月5日
  • s7-200密码问题

    我有西门子原密码,怎样设成全部权限,也就是1级密码,我试了2 3 4都能写密码,到1级时写密码处无法填写,谢谢,请各位大侠指点. 问题补充:我知道4级密码就是不能上载,怎样把4级密…

    SIMATIC S7-200 2021年7月5日
  • PTO运动包络

    遇到个问题,新设备使用了PTO运动包络,下载程序后,怎么才能看到PTO运动包络的具体参数呢?初学. 最佳答案 请参考:《s7-200速度包络的建立》http://wenku.bai…

    SIMATIC S7-200 2021年7月5日
  • 关于200和现场仪表通讯port口的问题?

    现224XP的CPU和现场50个仪表通讯,仪表支持modbus RTU协议,现在是将port0和port1分别通讯25个仪表,1.请问这样做合理吗?2.200读从站需要注…

    SIMATIC S7-200 2020年10月31日
  • SEW电机和DANFODD变频器

    我用变频器控制有抱闸的电机.我为了不在给抱闸一个220电源.我把电机的抱闸的螺丝松开了(不起到作用);但是电机发热很厉害.几乎不能用手去摸.????????? 最佳答案 楼主的做法…

    SIMATIC S7-200 2021年7月5日
  • 200PLC PPI 通讯

    可以用一台台达HMI 的一个通讯口  同时连接上两个200PLC  三个通讯口连在一起,其中HMI是PPI的主站(站号为0),两台…

    SIMATIC S7-200 2020年10月31日
  • DC34V电源加负载直接接PLC继电器输出触点

    相关ID号50079         50170 我想把串有34VDC电源的负载…

    SIMATIC S7-200 2021年7月4日
  • S7 200传送字符串给触摸屏?

    传送一个20位的一串字符里面有数字和字母,这个应该怎么做? 问题补充:是S7 200和威伦触摸屏通讯,希望程序小点 最佳答案 不要求这样的程序!维纶触摸屏支持西门子PLC…

    SIMATIC S7-200 2020年10月31日
  • 组态王的范围是多少?

    在PLC中定义了VB9999,为什么在组态王中的无法显示呢?是不是超出了范围。如果超出了,请问PLC对应的组态王的范围是多少? 是pLC 200的 最佳答案 在…

    SIMATIC S7-200 2021年7月4日