您现在所在的是:

PLC论坛

回帖:16个,阅读:4568 [上一页] [1] [2] [下一页]
20915
bnnyygy
文章数:5990
年度积分:1581
历史总积分:20915
注册时间:2012/3/15
发站内信
2018论坛分享达人
发表于:2020/5/24 21:37:21
#0楼
1,从树莓派的相关资料我们可以看到,树莓派有两个串口可以使用,一个是硬件串口(/dev/ttyAMA0),另一个是mini串口(/dev/ttyS0)。硬件串口有单独的波特率时钟源,性能好,稳定性强;mini串口功能简单,稳定性较差,波特率由CPU内核时钟提供,受内核时钟影响。

树莓派(3/4代)板载蓝牙模块,默认的硬件串口是分配给蓝牙模块使用的,而性能较差的mini串口是分配给GPIO串口 TXD0、RXD0。
------

白嫖连接:https://www.yahboom.com/build.html?id=2678&cid=308

2,自己用USB转TTL-与树莓派硬件TTL连接测试正常:

附件 QQ图片20200524213312.jpg


3. 找到 codesys配置文件:树莓派系统的/ETC里面,有2个。参考1,sudo nano /文件地址,修改配置文件,

;Linux.Devicefile=/dev/ttyAMA0 //这个是硬件地址,

[CmpBlkDrvCom]
;Com.0.Name=MyCom
;Com.0.Baudrate=115200
;Com.0.Port=3
;Com.0.EnableAutoAddressing=1


附件 QQ图片20200524213447.jpg

结果:完全通讯不了。



这个图是codesysQQ群,一个管理员的截图,他说说太简单,也没给出具体教程:
附件 QQ图片20200524213341.jpg


待续。期待大家共同研究,


备注:自己完全不会linux,当然,平时用的PLC哪里需要自己研究这些底层啊,RS232 RS485 都是PLC硬件厂商定义好了,自己使用就行。

玩过几天openwrt路由器,好像文件目录差不太多。。
[此贴子已经被作者于2020/5/25 19:07:51编辑过]
20915
bnnyygy
文章数:5990
年度积分:1581
历史总积分:20915
注册时间:2012/3/15
发站内信
2018论坛分享达人
发表于:2020/5/24 21:49:03
#1楼
附上群友发的图.
据说是codesys总部的答复:
附件 QQ图片20200524214803.jpg

附件 QQ图片20200524214808.jpg
2685
mengn66
文章数:329
年度积分:50
历史总积分:2685
注册时间:2013/4/4
发站内信
发表于:2020/5/24 23:29:06
#2楼
qq群里也看到了,应该是你?
此帖发自论坛手机版
20915
bnnyygy
文章数:5990
年度积分:1581
历史总积分:20915
注册时间:2012/3/15
发站内信
2018论坛分享达人
发表于:2020/5/25 19:05:39
#3楼
树莓派自带TTL RS485已完成!

电脑侧 USB_to_TTL----TTL(树莓派),中间没有TTL转RS485。按照2楼操作的。(这里就不具体说明了,自己开通大脑变通下,自带我按照1L的方法,映射成了ttyAMA0)

附件 QQ图片20200525190417.jpg
[此贴子已经被作者于2020/5/25 19:14:41编辑过]
20915
bnnyygy
文章数:5990
年度积分:1581
历史总积分:20915
注册时间:2012/3/15
发站内信
2018论坛分享达人
发表于:2020/5/25 19:40:19
#4楼
树莓派跑的cedesys 做的modbus 从站,电脑端威纶通在线模拟,读写正常。

附件 QQ图片20200525193937.jpg
11794
逍遥的久鸣
文章数:4434
年度积分:1028
历史总积分:11794
注册时间:2017/3/6
发站内信
2018论坛热心网友
发表于:2020/5/25 21:41:36
#5楼
刚才逛了他们官网,完全懵逼了,不知道该买什么了!表情
11794
逍遥的久鸣
文章数:4434
年度积分:1028
历史总积分:11794
注册时间:2017/3/6
发站内信
2018论坛热心网友
发表于:2020/5/25 21:41:56
#6楼
附件 001.jpg
20915
bnnyygy
文章数:5990
年度积分:1581
历史总积分:20915
注册时间:2012/3/15
发站内信
2018论坛分享达人
发表于:2020/5/25 22:44:00
#7楼
回复 #6楼 逍遥的久鸣
树莓派 codesys一个是卖硬件,一个是卖软件(授权),只是最近玩codesys的多了,我也顺带熟悉下。学习的话,win也很方便,也支持各种总线,电脑直接编程,使用,没授权两小时重启下就好了
此帖发自论坛手机版
2685
mengn66
文章数:329
年度积分:50
历史总积分:2685
注册时间:2013/4/4
发站内信
发表于:2020/5/26 9:34:11
#8楼
With scalar type:
TYPE DUT :
   STRUCT
    a,b,c,d,e,f : INT;
   END_STRUCT
END_TYPE

PROGRAM PLC_PRG
VAR
   pDut : POINTER TO DUT;
   bInit : BOOL := TRUE;
   bDelete : BOOL;
END_VAR

IF (bInit) THEN
   pDut := __NEW(DUT);
   bInit := FALSE;
END_IF
IF (bDelete) THEN
   __DELETE(pDut);
END_IF
With function block
{attribute 'enable_dynamic_creation'}
FUNCTION_BLOCK FBDynamic
VAR_INPUT
   in1, in2 : INT;
END_VAR
VAR_OUTPUT
   out : INT;
END_VAR
VAR
   test1 : INT := 1234;
   _inc : INT := 0;
   _dut : POINTER TO DUT;
   neu : BOOL;
END_VAR

out := in1 + in2;

PROGRAM PLC_PRG
VAR
   pFB : POINTER TO FBDynamic;
   loc : INT;
   bInit : BOOL := TRUE;
   bDelete : BOOL;
END_VAR

IF (bInit) THEN
   pFB := __NEW(FBDynamic);
   bInit := FALSE;
END_IF
With array:
PLC_PRG(PRG)
VAR
   bInit: BOOL := TRUE;
   bDelete : BOOL;
   pArrayBytes : POINTER TO BYTE;
   test : INT;
   parr : POINTER TO BYTE;
END_VAR

IF (bInit) THEN
   pArrayBytes := __NEW(BYTE, 25);
   bInit := FALSE;
END_IF

IF (bDelete) THEN
   __DELETE(pArrayBytes);
END_IF
此帖发自论坛手机版
2685
mengn66
文章数:329
年度积分:50
历史总积分:2685
注册时间:2013/4/4
发站内信
发表于:2020/5/26 9:36:43
#9楼
--New(DUT)实例化没有分配内存会报错,我在施耐德tm241上动态分配内存是选择不了的,问下怎么事先把DUT分配内存。初学codesys
此帖发自论坛手机版

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

62.4004