分享

聊一聊树莓派,想玩但不知道从哪里开始?

 阿明哥哥资料区 2020-05-28

小编今天选用网友FreeTigerMan《在PLC论坛聊一聊树莓派》的第四、第五、第六节分享给大家看看,建议对此感兴趣的初学者前往论坛从头开始翻阅。当然,也鼓励大家多多分享,供同行们学习参考借鉴,共同进步!


疫情期间在家无聊,买了个树莓派来回折腾打发时间,没想到这两天论坛里居然有了不少高质量的技术贴讲树莓派和自动化的应用,也来凑个热闹,把自己在选购、使用、折腾的心得分享一下,供大家参考,少走弯路。


安装好Codesys runtime后,就可以开始编程了。碰到连接或运行问题,如果熟悉linux命令,可以通过ssh连接树莓派确认一下服务的状态,正常结果是这样的:sudo systemctl status codesyscontrol.service

这种状态下,在codesys中新建项目,设备选择树莓派MC或SL(多核和单核版),连接网络时,扫描网络,就能找到设备:

有时候怎么也扫不到,就直接填IP地址,也能够连接:

这样就可以愉快的编程玩耍了!

可以比较一下原版的Codesys和施耐德增加了FDT/DTM以及各种设备支持以后的somachine软件相同和不同之处,相信你会对plc编程有更多的了解。


下次讲树莓派支持的IO接口和总线以及与施耐德设备的连接性。

接上贴,在树莓派上安装Codesys的runtime,并正常联机后,树莓派就成为一个有一定控制功能的树莓派了。。。

我们可以看到,Codesys支持树莓派的各种接口:

树莓派自带的好多接口在工控领域都不怎么用,简单介绍一下:

树莓派自带一个摄像头接口,很多人用来做机器视觉的应用,CodeSys也显示了这个Camera device,我没有摄像头,也没法测试是不是可以很简单的实现一些咱们PLC做不到的图像识别,有条件的同学可以继续努力。

树莓派还有一个显示器接口,可以接触摸屏,很方便的改造成的怀旧游戏机,这个也供感兴趣的同学研究,欢迎发帖展示成果啊。

对控制最有用的恐怕就是这个GPIO接口了,位置如下图所示,下面的图还标出了其中的串口(UART)的管脚:

这个GPIO可是功能强大,在作为通用IO的基础上还复用支持了很多功能:

I2C接口
I2C是由Philips公司开发的一种简单、双向二线制同步串行总线。它只需要两根线即可在连接于总线上的器件之间传送信息。树莓派通过I2C接口可控制多个传感器和组件。它们的通信是通过SDA(数据引脚)和SCL(时钟速度引脚)来完成的。每个从设备都有一个唯一的地址,允许与许多设备间快速通信。ID_EEPROM引脚也是I2C协议,它用于与HATs通信。

SPI接口
SPI是串行外设接口,用于控制具有主从关系的组件,采用从进主出和主进从出的方式工作,树莓派上SPI由SCLK、MOSI、MISO接口组成,SCLK用于控制数据速度,MOSI将数据从树莓派发送到所连接的设备,而MISO则相反。

UART接口(就是图中的RXD,TXD,GND,就是RS232)
有使用Arduino的朋友一定听说过UART或Serial,通用异步收/发器接口用于将Arduino连接到为其编程的计算机上,也用于其他设备与 RX 和 TX 引脚之间的通信。如果树莓派在 raspi-config 中启用了串口终端,则可以使用这些引脚通过电脑来控制树莓派,也可以直接用于控制Arduino。

PWM接口
在树莓派上,所有的引脚都可以实现软件PWM,而GPIO12、GPIO13、GPIO18、GPIO19可以实现硬件脉宽调制。

GPIO(General Purpose I/O Ports)意思为通用输入/输出端口,通俗地说,就是一些引脚,可以通过它们输出高低电平或者通过它们读入引脚的状态-是高电平或是低电平。GPIO是个比较重要的概念,用户可以通过GPIO口和硬件进行数据交互(如UART),控制硬件工作(如LED、蜂鸣器等),读取硬件的工作状态信号(如中断信号)等。GPIO口的使用非常广泛。掌握了GPIO,差不多相当于掌握了操作硬件的能力。

树莓派有26个GPIO接口,其中有一部分是复用接口。

1、引脚3、5为IC总线复用接口
2、引脚7为(GCLK)全局时钟引脚复用接口
3、引脚19、21、23为SPI总线复用接口
4、引脚8、10为串口复用接口,TX发送,RX接收
5、引脚12、32、33、35为PWM复用接口

通过配置,这26个IO是既可以作为DI也可以作为DO使用的,Codesys在驱动上把复用的管脚都按接口功能使用了,所以在GPIOs_A_B里面软件上支持GPIO0~31,实际上只留了剩下的没有复用的作为IO点使用,可以根据需要配置。

要把这些IO真正用来控制设备,一般还要经过电平转换和增加负载能力的,除非是一些小的led什么的可以直接驱动,有兴趣搞明白这一块的,就可以自己制作PLC了,需要用到数字电子电路和模拟电子电路的知识,还没把这些还给老师的童鞋欢迎加入。当然了,万能的淘宝也有成品的继电器板买,用杜邦线一接马上就能驱动小马达了。

介绍了树莓派支持的各种接口,继续讲其在工控的应用。查阅官方资料,树莓派支持以下接口(和上贴有些重复,但这里更准确些):

1. CODESYS OPC UA Server,as full version for data exchange/OPC UA以后肯定会大量使用的,突破了win DCOM的局限
2. CANopen via EL6751 Gateway/CanOpen,要通过网关的
3. Raspberry Pi Camera/支持相机,拍照,抓图,显示图片都没问题,图形识别恐怕要自己开发了
4. I2C interface,with SenseHat,SRF02, Adafruit PWM,MPU6050 Gyro,MPU9150 Gyro,AK8975 Compass/IIC总线主站,可以接国外的那些设备,好像淘宝也有的卖
5. SPI interface,with MCP3008,MCP23S17,PiFace Digital,PiFace Control Display/SPI接口,支持列出的设备。
6. One-wire interface,with DS20B18/1-wire,支持部分设备
7. GPIO/如前所述,支持io输入输出的直接配置,使用

软件支持的现场总线

1. CODESYS CANopen Manager / Device 需要网关支持
2. CODESYS EtherCAT Master/直接支持使用集成网口,也支持usb扩展网卡,只支持主站
3. CODESYS EtherNet/IP Scanner / Adapter /直接支持使用集成网口,参见W大的帖子
4. CODESYS J1939 /没用过,欢迎指教
5. CODESYS Modbus TCP Master / Slave /施耐德的基础协议,集成网口可以直接实现,灰常方便,支持主站和从站
6. CODESYS Modbus Serial Master / Slave /施耐德的基础协议,支持USB串口,GPIO的UART支持与否还没找到详细步骤,理论上可以,因为Codesys说串口驱动是由操作系统提供的,那就是说只要rasbain能识别就可以;从实用性说买个usb串口(PL2303的就可用)比转换gpio的uart更容易。只是从物尽其用的角度,能用GPIO更好。
7. CODESYS PROFINET Controller / Device  /西门子的以太网协议,只支持主站
8. CODESYS SoftMotion,CNC /支持运动控制
9. Network protocol BACnet/支持BacNet,楼控里常用的总线。

这些总线支持,在加上内置的Web可视化实现简单的基于浏览器的人机界面HMI,要说能满足很多工控的要求了,而且基于Codesys的开放属性,也支持自行开发驱动。

不过,树莓派和CodeSys的树莓派Runtime还是主要针对教育和测试的,Codesys Runtime的实时性能还是依赖树莓派操作系统,尽管Rasbain支持实时控制机制,要真正用在工业现场,还是要经过很多工作和测试的。

作为一个学习工具,还是不错的。

我们把树莓派连上能够找到的上面这些任何设备做IO,然后通过web visulization做个操作画面,这些画面可以通过电脑或手机的浏览器访问

如果在路由器做个内网穿透,那就可以很容易的实现“云控制”了,还是极好的。。。

试着把上面支持的设备都选一些典型配置加上,很容易的就编译通过了,虽然硬件要一个一个调试,但通过这些设置,对这些设备的配置和工作原理,还是能有更多理解的。

从浏览器或手机上访问:

http://192.168.1.44:8080/webvisu.htm

可以方便的进行操作:

说完了树莓派Codesys功能的全景图,但一些协议的详细配置没细讲。感兴趣的童鞋也可以前往论坛交流。

来源/中华工控网

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多