技术论坛

1200与G120C PN通讯 352报文

作者 主题
奇侠

经验值: 5547
发帖数: 626
精华帖: 6
主题:【求助】1200与G120C PN通讯 352报文
精华帖精华帖星级3级 推荐帖


只看楼主 只看精华 楼主 2021-12-18 16:06:52

   1200与G120C  PN通讯 ,通讯用 352报文,目前遇到一些问题,我用常规方式能读取写入参数没问题,现在想用博图选件包里面SINAMICS 中 Sinaparas或是 Sinapara这两条指令怎么用。有哪个工程师用过这两条指令,请指教。


                                                                                                            图1

 图1是G120C 配置截图  

                         


                                                                                                 图2


                                                                                                           图3

图二和图三是我常规编程,能启动停止G120C变频器。


                             图4


                                                                 图5

现在想用图四中标注中指令去控制G120C变频器,不知道这指令怎么用,具体是这指令中图五管脚怎么用,不是很理解。



 
精华帖版主置评: 这是一个应用实例的开题。不错的分享。kdrjl
以下网友喜欢您的帖子:

  
重要声明:

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1740147&b_id=47&s_id=0&num=0

版主

经验值: 136813
发帖数: 34968
精华帖: 435
回复:1200与G120C PN通讯 352报文
推荐帖


只看楼主 只看精华 1楼 2021-12-18 16:33:24

博图?博图不是全中文界面吗?怎么会出来e文的描述?那中文界面还有啥意义呢?


我是你的朋友
以下网友喜欢您的帖子:

  
版主

经验值: 127330
发帖数: 22001
精华帖: 824
回复:1200与G120C PN通讯 352报文
推荐帖


只看楼主 只看精华 2楼 2021-12-18 16:41:40

这两个功能块不是用于过程控制的。就是说,不是周期通讯的PZD。

它们是用于读写参数(PKW)用的。带S的是读写单一参数用,另一个是读写一串参数用(例如:全部报警或故障信息;不是一个一个下标的去读)

这是非周期通讯读写,需要好几个周期。才完成。

和报文352没有关系。这个是,什么时候需要,什么时候调用。


学而时习之,不亦说乎?温故而知新,不亦乐乎?
以下网友喜欢您的帖子:

  
奇侠

经验值: 5547
发帖数: 626
精华帖: 6
回复:1200与G120C PN通讯 352报文
推荐帖


只看楼主 只看精华 楼主 3楼 2021-12-18 16:54:08
以下是引用yming在2021-12-18 16:41:40的发言 >2楼

这两个功能块不是用于过程控制的。就是说,不是周期通讯的PZD。

它们是用于读写参数(PKW)用的。带S的是读写单一参数用,另一个是读写一串参数用(例如:全部报警或故障信息;不是一个一个下标的去读)

这是非周期通讯读写,需要好几个周期。才完成。

和报文352没有关系。这个是,什么时候需要,什么时候调用。

  yming版主,其实我就是想换一种方式去控制变频器。目前项目上变频器比较多,用我第一种方式去编程,程序量比较大,想换一种类似用功能块的方式控制,一台变频器用一个功能块,那就多台用多个功能块,我目前就是想找这样简单的编程方法。有没有,周期性功能块控制方式或是库。


 
以下网友喜欢您的帖子:

  
侠客

经验值: 726
发帖数: 14
精华帖: 0
回复:1200与G120C PN通讯 352报文
推荐帖


只看楼主 只看精华 4楼 2021-12-18 17:46:34

https://support.industry.siemens.com/cs/document/70155469/sinamics-g-speed-control-of-a-g120-(startdrive)-with-s7-1200-via-profinet-profibus-dp-with-safety-integrated-(via-terminal)-and-hmi?dti=0&lc=en-WW


https://support.industry.siemens.com/cs/document/77467239/%E5%80%9F%E5%8A%A9%E4%BA%8E-xml-%E8%A7%A3%E6%9E%90%E5%99%A8%EF%BC%8C%E8%BD%AC%E6%8D%A2-sinamics-%E5%8F%98%E9%A2%91%E5%99%A8%E7%9A%84%E8%AD%A6%E5%91%8A%E5%92%8C%E9%94%99%E8%AF%AF%E6%B6%88%E6%81%AF%E5%B9%B6%E5%B0%86%E5%85%B6?dti=0&lc=zh-CN


第一个链接有控制示例,根据自己需要改动

第二个链接的工具可以把变频器的警告和错误信息转换,然后导入触摸屏




 
以下网友喜欢您的帖子:

  
版主

经验值: 127330
发帖数: 22001
精华帖: 824
回复:1200与G120C PN通讯 352报文
推荐帖


只看楼主 只看精华 5楼 2021-12-18 19:14:56
以下是引用Siemens automation在2021-12-18 16:54:08的发言 >3楼

  yming版主,其实我就是想换一种方式去控制变频器。目前项目上变频器比较多,用我第一种方式去编程,程序量比较大,想换一种类似用功能块的方式控制,一台变频器用一个功能块,那就多台用多个功能块,我目前就是想找这样简单的编程方法。有没有,周期性功能块控制方式或是库。

以下是引用yming在2021-12-18 16:41:40的发言 >2楼:这两个功能块不是用...

引用2楼详细内容:

这两个功能块不是用于过程控制的。就是说,不是周期通讯的PZD。

它们是用于读写参数(PKW)用的。带S的是读写单一参数用,另一个是读写一串参数用(例如:全部报警或故障信息;不是一个一个下标的去读)

这是非周期通讯读写,需要好几个周期。才完成。

和报文352没有关系。这个是,什么时候需要,什么时候调用。

怎么说呢?

你这是用G120C-PN;S7-1200做IO控制器,它作为IO,构成PN/IO的过程控制系统。

这些和ProfiBus 的DP/IO过程控制是一样的。(本来就是继承的)

什么是过程控制?形象地说,就是控制器时时、处处地在控制着IO对象。发送控制字,接收对象的状态字。一刻也不停。具体来说,就是PZD格式的连续报文交换。

这种连续交换,在S1200中、在G120C-PN中是由专用芯片来处理的。(你组态、下载配置后,上电运行,这种交换就自动运行了。DP系统也是一样!没写程序也在交换!按设置自己在更新IO。)

你一楼的MOVE写法本来就有问题。不是MOVE不可以,但这里有个数据一致性的问题。

PN/IO通讯更新IO是独自处理的,而程序扫描周期读写的是IO映像,它在周期开始读到(放入映像区的)并不是PN/IO更新整体的报文PZD,有可能一半是上个IO周期,一半是本周期的。

所以,通常(除了标准报文1:2/2PZD)都是用DPRD_DAT/DPWR_DAT功能块来读写。这是一致性读写。

比如:你这个报文352,读到的转速、电流、转矩等等是同一时刻的,而不是转速是当前的;电流、转矩是几毫秒前的。

调用这两功能块,就是在调用时,一次交换数据。和你的MOVE方式,完全不同。


至于,为啥没有提供像USS_Drive那样的功能块。

因为,那个功能块太死板了。而面对的过程控制有千百种要求。你完全可以自己做成不同的FB、FC。在程序某处,调用一次DPRD_DAT/DPWR_DAT  就可以了。

而DPRD_DAT使用特别简单,就两参数;指定是哪个IO;只用一个指针,就指定了那个数据块DB,报文的长度。 


你的任务,就是自己做你需要的FB,FC来处理这个DB而已;100个驱动,就是100个DB。(当然也可以用多重背景的一个DB )

这是7年前的帖子,可以参考。

《使用S7-1200控制SINAMICS  G系列变频器》


而非周期的读写参数功能块,是读写参数用的,它们使用的是PKW字段。平时它处于无任务状态。

在底层,读写参数过程其实是很麻烦的。读一个参数,首先是调用写,告诉驱动,要读哪个参数?索引号?什么数据类型等等,然后,下一个周期是等待,直到返回确认,然后再调用读,获得参数值。

所以,需要调用这个功能块。


学而时习之,不亦说乎?温故而知新,不亦乐乎?
以下网友喜欢您的帖子:

  
至圣

经验值: 18067
发帖数: 1524
精华帖: 2
回复:1200与G120C PN通讯 352报文
推荐帖


只看楼主 只看精华 6楼 2021-12-20 09:00:50

拜读大家的讨论,也学习了不少。


我回来了!继续努力!
以下网友喜欢您的帖子:

  
奇侠

经验值: 5547
发帖数: 626
精华帖: 6
回复:1200与G120C PN通讯 352报文
推荐帖


只看楼主 只看精华 楼主 7楼 2021-12-20 11:37:22
以下是引用yming在2021-12-18 19:14:56的发言 >5楼

怎么说呢?

你这是用G120C-PN;S7-1200做IO控制器,它作为IO,构成PN/IO的过程控制系统。

这些和ProfiBus 的DP/IO过程控制是一样的。(本来就是继承的)

什么是过程控制?形象地说,就是控制器时时、处处地在控制着IO对象。发送控制字,接收对象的状态字。一刻也不停。具体来说,就是PZD格式的连续报文交换。

这种连续交换,在S1200中、在G120C-PN中是由专用芯片来处理的。(你组态、下载配置后,上电运行,这种交换就自动运行了。DP系统也是一样!没写程序也在交换!按设置自己在更新IO。)

你一楼的MOVE写法本来就有问题。不是MOVE不可以,但这里有个数据一致性的问题。

PN/IO通讯更新IO是独自处理的,而程序扫描周期读写的是IO映像,它在周期开始读到(放入映像区的)并不是PN/IO更新整体的报文PZD,有可能一半是上个IO周期,一半是本周期的。

所以,通常(除了标准报文1:2/2PZD)都是用DPRD_DAT/DPWR_DAT功能块来读写。这是一致性读写。

比如:你这个报文352,读到的转速、电流、转矩等等是同一时刻的,而不是转速是当前的;电流、转矩是几毫秒前的。

调用这两功能块,就是在调用时,一次交换数据。和你的MOVE方式,完全不同。


至于,为啥没有提供像USS_Drive那样的功能块。

因为,那个功能块太死板了。而面对的过程控制有千百种要求。你完全可以自己做成不同的FB、FC。在程序某处,调用一次DPRD_DAT/DPWR_DAT  就可以了。

而DPRD_DAT使用特别简单,就两参数;指定是哪个IO;只用一个指针,就指定了那个数据块DB,报文的长度。 


你的任务,就是自己做你需要的FB,FC来处理这个DB而已;100个驱动,就是100个DB。(当然也可以用多重背景的一个DB )

这是7年前的帖子,可以参考。

《使用S7-1200控制SINAMICS  G系列变频器》


而非周期的读写参数功能块,是读写参数用的,它们使用的是PKW字段。平时它处于无任务状态。

在底层,读写参数过程其实是很麻烦的。读一个参数,首先是调用写,告诉驱动,要读哪个参数?索引号?什么数据类型等等,然后,下一个周期是等待,直到返回确认,然后再调用读,获得参数值。

所以,需要调用这个功能块。

以下是引用Siemens automation在2021-12-18 16:54:08的发言 >3楼:  yming版主,其实...

引用3楼详细内容:

  yming版主,其实我就是想换一种方式去控制变频器。目前项目上变频器比较多,用我第一种方式去编程,程序量比较大,想换一种类似用功能块的方式控制,一台变频器用一个功能块,那就多台用多个功能块,我目前就是想找这样简单的编程方法。有没有,周期性功能块控制方式或是库。

以下是引用yming在2021-12-18 16:41:40的发言 >2楼:这两个功能块不是用...

引用2楼详细内容:

这两个功能块不是用于过程控制的。就是说,不是周期通讯的PZD。

它们是用于读写参数(PKW)用的。带S的是读写单一参数用,另一个是读写一串参数用(例如:全部报警或故障信息;不是一个一个下标的去读)

这是非周期通讯读写,需要好几个周期。才完成。

和报文352没有关系。这个是,什么时候需要,什么时候调用。

     谢谢  yming  版主指导。


 
以下网友喜欢您的帖子:

  
版主

经验值: 127330
发帖数: 22001
精华帖: 824
回复:1200与G120C PN通讯 352报文
推荐帖


只看楼主 只看精华 8楼 2021-12-20 12:19:25
以下是引用Siemens automation在2021-12-20 11:37:22的发言 >7楼

     谢谢  yming  版主指导。

以下是引用yming在2021-12-18 19:14:56的发言 >5楼:怎么说呢?你这是用...

引用5楼详细内容:

怎么说呢?

你这是用G120C-PN;S7-1200做IO控制器,它作为IO,构成PN/IO的过程控制系统。

这些和ProfiBus 的DP/IO过程控制是一样的。(本来就是继承的)

什么是过程控制?形象地说,就是控制器时时、处处地在控制着IO对象。发送控制字,接收对象的状态字。一刻也不停。具体来说,就是PZD格式的连续报文交换。

这种连续交换,在S1200中、在G120C-PN中是由专用芯片来处理的。(你组态、下载配置后,上电运行,这种交换就自动运行了。DP系统也是一样!没写程序也在交换!按设置自己在更新IO。)

你一楼的MOVE写法本来就有问题。不是MOVE不可以,但这里有个数据一致性的问题。

PN/IO通讯更新IO是独自处理的,而程序扫描周期读写的是IO映像,它在周期开始读到(放入映像区的)并不是PN/IO更新整体的报文PZD,有可能一半是上个IO周期,一半是本周期的。

所以,通常(除了标准报文1:2/2PZD)都是用DPRD_DAT/DPWR_DAT功能块来读写。这是一致性读写。

比如:你这个报文352,读到的转速、电流、转矩等等是同一时刻的,而不是转速是当前的;电流、转矩是几毫秒前的。

调用这两功能块,就是在调用时,一次交换数据。和你的MOVE方式,完全不同。


至于,为啥没有提供像USS_Drive那样的功能块。

因为,那个功能块太死板了。而面对的过程控制有千百种要求。你完全可以自己做成不同的FB、FC。在程序某处,调用一次DPRD_DAT/DPWR_DAT  就可以了。

而DPRD_DAT使用特别简单,就两参数;指定是哪个IO;只用一个指针,就指定了那个数据块DB,报文的长度。 


你的任务,就是自己做你需要的FB,FC来处理这个DB而已;100个驱动,就是100个DB。(当然也可以用多重背景的一个DB )

这是7年前的帖子,可以参考。

《使用S7-1200控制SINAMICS  G系列变频器》


而非周期的读写参数功能块,是读写参数用的,它们使用的是PKW字段。平时它处于无任务状态。

在底层,读写参数过程其实是很麻烦的。读一个参数,首先是调用写,告诉驱动,要读哪个参数?索引号?什么数据类型等等,然后,下一个周期是等待,直到返回确认,然后再调用读,获得参数值。

所以,需要调用这个功能块。

以下是引用Siemens automation在2021-12-18 16:54:08的发言 >3楼:  yming版主,其...

引用3楼详细内容:

  yming版主,其实我就是想换一种方式去控制变频器。目前项目上变频器比较多,用我第一种方式去编程,程序量比较大,想换一种类似用功能块的方式控制,一台变频器用一个功能块,那就多台用多个功能块,我目前就是想找这样简单的编程方法。有没有,周期性功能块控制方式或是库。

以下是引用yming在2021-12-18 16:41:40的发言 >2楼:这两个功能块不是...

引用2楼详细内容:

这两个功能块不是用于过程控制的。就是说,不是周期通讯的PZD。

它们是用于读写参数(PKW)用的。带S的是读写单一参数用,另一个是读写一串参数用(例如:全部报警或故障信息;不是一个一个下标的去读)

这是非周期通讯读写,需要好几个周期。才完成。

和报文352没有关系。这个是,什么时候需要,什么时候调用。

自己编写的伺服定位,模式转换才会用这个,传送一些运行参数;改变运行模式。

只不过大多都整合到 EPOS等“高级”功能块中了。又变成很少用了。


此外,用这2个功能块修改参数要清楚参数的特性,知道 可修改的 U、C、T 条件。

而且,很多情况下,涉及 BiCo 的也不能改。




学而时习之,不亦说乎?温故而知新,不亦乐乎?
以下网友喜欢您的帖子:

  
侠士

经验值: 1658
发帖数: 87
精华帖: 0
回复:1200与G120C PN通讯 352报文
推荐帖


只看楼主 只看精华 9楼 2021-12-21 09:53:05

G120C可以读取352报文的状态字和控制字,自己做一个功能块,多次调用就好了,记得用DPRD和DPWR关联硬件标识符,用来读写数据!


努力到无能为力,拼搏到感动自己!
以下网友喜欢您的帖子:

  
版主

经验值: 127330
发帖数: 22001
精华帖: 824
回复:1200与G120C PN通讯 352报文
推荐帖


只看楼主 只看精华 10楼 2021-12-21 10:38:29

关于 读写多参数的方法 看下面的 说明(英文)

《如何使用 库 SINA_PARA FB286 读写多参数》

提示:要读写的参数都事先放在 SINA_PARA_DB 中。接口输入 读写几个。


关于 读写单一参数的方法 看下面的 说明(英文)

《如何用 SINA_PARAS FB287 读写单一参数 》

接口直接 输入参数号,索引值。


都有示例


学而时习之,不亦说乎?温故而知新,不亦乐乎?
以下网友喜欢您的帖子:

  
奇侠

经验值: 9616
发帖数: 432
精华帖: 0
回复:1200与G120C PN通讯 352报文
推荐帖


只看楼主 只看精华 11楼 2021-12-22 08:07:49

拜读大家的讨论,也学习了不少!


 
以下网友喜欢您的帖子:

  
游民

经验值: 88
发帖数: 1
精华帖: 0
回复:1200与G120C PN通讯 352报文


只看楼主 只看精华 12楼 2022-06-22 15:24:55

用 352报文的话,可以直接用 ''SINA_SPEED_TLG352 (FB38004)''块进行控制,不用你手动MOVE ,https://support.industry.siemens.com/cs/ww/en/view/109747655


 
以下网友喜欢您的帖子:

  
版主

经验值: 127330
发帖数: 22001
精华帖: 824
回复:1200与G120C PN通讯 352报文


只看楼主 只看精华 13楼 2022-06-22 16:19:04
以下是引用沧海月在2022-06-22 15:24:55的发言 >12楼

用 352报文的话,可以直接用 ''SINA_SPEED_TLG352 (FB38004)''块进行控制,不用你手动MOVE ,https://support.industry.siemens.com/cs/ww/en/view/109747655

不错。这是近几年推出的针对报文20、352的速度控制库。

类似USS_Driver 的库。


学而时习之,不亦说乎?温故而知新,不亦乐乎?
以下网友喜欢您的帖子:

  
游士

经验值: 254
发帖数: 9
精华帖: 0
回复:1200与G120C PN通讯 352报文


只看楼主 只看精华 14楼 2023-04-03 16:54:15
以下是引用yming在2021-12-18 19:14:56的发言 >5楼

怎么说呢?

你这是用G120C-PN;S7-1200做IO控制器,它作为IO,构成PN/IO的过程控制系统。

这些和ProfiBus 的DP/IO过程控制是一样的。(本来就是继承的)

什么是过程控制?形象地说,就是控制器时时、处处地在控制着IO对象。发送控制字,接收对象的状态字。一刻也不停。具体来说,就是PZD格式的连续报文交换。

这种连续交换,在S1200中、在G120C-PN中是由专用芯片来处理的。(你组态、下载配置后,上电运行,这种交换就自动运行了。DP系统也是一样!没写程序也在交换!按设置自己在更新IO。)

你一楼的MOVE写法本来就有问题。不是MOVE不可以,但这里有个数据一致性的问题。

PN/IO通讯更新IO是独自处理的,而程序扫描周期读写的是IO映像,它在周期开始读到(放入映像区的)并不是PN/IO更新整体的报文PZD,有可能一半是上个IO周期,一半是本周期的。

所以,通常(除了标准报文1:2/2PZD)都是用DPRD_DAT/DPWR_DAT功能块来读写。这是一致性读写。

比如:你这个报文352,读到的转速、电流、转矩等等是同一时刻的,而不是转速是当前的;电流、转矩是几毫秒前的。

调用这两功能块,就是在调用时,一次交换数据。和你的MOVE方式,完全不同。


至于,为啥没有提供像USS_Drive那样的功能块。

因为,那个功能块太死板了。而面对的过程控制有千百种要求。你完全可以自己做成不同的FB、FC。在程序某处,调用一次DPRD_DAT/DPWR_DAT  就可以了。

而DPRD_DAT使用特别简单,就两参数;指定是哪个IO;只用一个指针,就指定了那个数据块DB,报文的长度。 


你的任务,就是自己做你需要的FB,FC来处理这个DB而已;100个驱动,就是100个DB。(当然也可以用多重背景的一个DB )

这是7年前的帖子,可以参考。

《使用S7-1200控制SINAMICS  G系列变频器》


而非周期的读写参数功能块,是读写参数用的,它们使用的是PKW字段。平时它处于无任务状态。

在底层,读写参数过程其实是很麻烦的。读一个参数,首先是调用写,告诉驱动,要读哪个参数?索引号?什么数据类型等等,然后,下一个周期是等待,直到返回确认,然后再调用读,获得参数值。

所以,需要调用这个功能块。

以下是引用Siemens automation在2021-12-18 16:54:08的发言 >3楼:  yming版主,其实...

引用3楼详细内容:

  yming版主,其实我就是想换一种方式去控制变频器。目前项目上变频器比较多,用我第一种方式去编程,程序量比较大,想换一种类似用功能块的方式控制,一台变频器用一个功能块,那就多台用多个功能块,我目前就是想找这样简单的编程方法。有没有,周期性功能块控制方式或是库。

以下是引用yming在2021-12-18 16:41:40的发言 >2楼:这两个功能块不是用...

引用2楼详细内容:

这两个功能块不是用于过程控制的。就是说,不是周期通讯的PZD。

它们是用于读写参数(PKW)用的。带S的是读写单一参数用,另一个是读写一串参数用(例如:全部报警或故障信息;不是一个一个下标的去读)

这是非周期通讯读写,需要好几个周期。才完成。

和报文352没有关系。这个是,什么时候需要,什么时候调用。

您好,为什么您说有可能一半是上个IO周期,一半是本周期的,我理解用MOVE的话数据是从PII和PIQ取出来的,CPU扫描周期更新才更新,如果G120的周期是2MS,也就是每2ms更新到外设IO缓冲区,CPU循环周期是50MS,那数据是每50MS从外设IO缓存区取一次到PII/PIQ,数据会滞后,但是不存在一致性的问题啊,每次读取的电流电压都是同一个时间节点的啊,不知道这里我理解的是否有误?

还有用DPRD_DAT/DPWR_DAT就是跟着外设IO数据的更新而更新吗,这个指令的本质是跟随哪个时间点或者哪个数据更新呢?如果是直接根据外设IO缓冲区更新也就是G120的周期更新,那不就跟:P的功能类似了吗?我想了一下没想明白,还请赐教


我就是我,不一样的烟火
以下网友喜欢您的帖子:

  
版主

经验值: 127330
发帖数: 22001
精华帖: 824
回复:1200与G120C PN通讯 352报文


只看楼主 只看精华 15楼 2023-04-03 22:23:09
以下是引用手机用户20190201662570在2023-04-03 16:54:15的发言 >14楼

您好,为什么您说有可能一半是上个IO周期,一半是本周期的,我理解用MOVE的话数据是从PII和PIQ取出来的,CPU扫描周期更新才更新,如果G120的周期是2MS,也就是每2ms更新到外设IO缓冲区,CPU循环周期是50MS,那数据是每50MS从外设IO缓存区取一次到PII/PIQ,数据会滞后,但是不存在一致性的问题啊,每次读取的电流电压都是同一个时间节点的啊,不知道这里我理解的是否有误?

还有用DPRD_DAT/DPWR_DAT就是跟着外设IO数据的更新而更新吗,这个指令的本质是跟随哪个时间点或者哪个数据更新呢?如果是直接根据外设IO缓冲区更新也就是G120的周期更新,那不就跟:P的功能类似了吗?我想了一下没想明白,还请赐教

以下是引用yming在2021-12-18 19:14:56的发言 >5楼:怎么说呢?你这是用...

引用5楼详细内容:

怎么说呢?

你这是用G120C-PN;S7-1200做IO控制器,它作为IO,构成PN/IO的过程控制系统。

这些和ProfiBus 的DP/IO过程控制是一样的。(本来就是继承的)

什么是过程控制?形象地说,就是控制器时时、处处地在控制着IO对象。发送控制字,接收对象的状态字。一刻也不停。具体来说,就是PZD格式的连续报文交换。

这种连续交换,在S1200中、在G120C-PN中是由专用芯片来处理的。(你组态、下载配置后,上电运行,这种交换就自动运行了。DP系统也是一样!没写程序也在交换!按设置自己在更新IO。)

你一楼的MOVE写法本来就有问题。不是MOVE不可以,但这里有个数据一致性的问题。

PN/IO通讯更新IO是独自处理的,而程序扫描周期读写的是IO映像,它在周期开始读到(放入映像区的)并不是PN/IO更新整体的报文PZD,有可能一半是上个IO周期,一半是本周期的。

所以,通常(除了标准报文1:2/2PZD)都是用DPRD_DAT/DPWR_DAT功能块来读写。这是一致性读写。

比如:你这个报文352,读到的转速、电流、转矩等等是同一时刻的,而不是转速是当前的;电流、转矩是几毫秒前的。

调用这两功能块,就是在调用时,一次交换数据。和你的MOVE方式,完全不同。


至于,为啥没有提供像USS_Drive那样的功能块。

因为,那个功能块太死板了。而面对的过程控制有千百种要求。你完全可以自己做成不同的FB、FC。在程序某处,调用一次DPRD_DAT/DPWR_DAT  就可以了。

而DPRD_DAT使用特别简单,就两参数;指定是哪个IO;只用一个指针,就指定了那个数据块DB,报文的长度。 


你的任务,就是自己做你需要的FB,FC来处理这个DB而已;100个驱动,就是100个DB。(当然也可以用多重背景的一个DB )

这是7年前的帖子,可以参考。

《使用S7-1200控制SINAMICS  G系列变频器》


而非周期的读写参数功能块,是读写参数用的,它们使用的是PKW字段。平时它处于无任务状态。

在底层,读写参数过程其实是很麻烦的。读一个参数,首先是调用写,告诉驱动,要读哪个参数?索引号?什么数据类型等等,然后,下一个周期是等待,直到返回确认,然后再调用读,获得参数值。

所以,需要调用这个功能块。

以下是引用Siemens automation在2021-12-18 16:54:08的发言 >3楼:  yming版主,其...

引用3楼详细内容:

  yming版主,其实我就是想换一种方式去控制变频器。目前项目上变频器比较多,用我第一种方式去编程,程序量比较大,想换一种类似用功能块的方式控制,一台变频器用一个功能块,那就多台用多个功能块,我目前就是想找这样简单的编程方法。有没有,周期性功能块控制方式或是库。

以下是引用yming在2021-12-18 16:41:40的发言 >2楼:这两个功能块不是...

引用2楼详细内容:

这两个功能块不是用于过程控制的。就是说,不是周期通讯的PZD。

它们是用于读写参数(PKW)用的。带S的是读写单一参数用,另一个是读写一串参数用(例如:全部报警或故障信息;不是一个一个下标的去读)

这是非周期通讯读写,需要好几个周期。才完成。

和报文352没有关系。这个是,什么时候需要,什么时候调用。

不是的。从PROFIBUS时代就是使用DP芯片作为DP通讯。

手册上指出:当使用MOVE 报文的IO映像区 2个字节(还是2 WORD?)是不存在读写一致性问题的。

说明:两者是相同的。同时,也说明,芯片与IO映像区交换数据是异步的。

报文字与映像区交换完成后,有一个标志位?(可能吧。)



学而时习之,不亦说乎?温故而知新,不亦乐乎?
以下网友喜欢您的帖子:

  
  • 上一页
  • 1
  • 下一页
收起
1200与G120C PN通讯 352报文
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。