STM32(2)-TimerによるLED点滅機能

前回は、STM32F446マイコンを使用して、LED点滅機能を構築しました。評価ボードは、NUCLEO-F446REを使用しました。開発環境は、「STM32CubeIDE」を使用しました。前回の内容は下記のサイトを参考にしてください。

STM32(1)-LED点滅機能

前回は、HAL_Delay関数を使用して、LEDの点滅回路を作成しました。今回は、Timerを使用して、LEDの点滅回路を構築します。前回と同様で、評価ボードはNUCLEO-F446RE、開発環境は、「STM32CubeIDE」を使用します。

それでは、Timerを使用して、LEDの点滅回路を構築したいと思います。まずは、新規プロジェクトを作成します。新規プロジェクトの作成方法は下記のサイトを参考にしてください。

STM32(1)-LED点滅機能

STM32(1)-LED点滅機能

RenesasでArmコア搭載のマイコンというと、RZやRenesas Synergy、RAマイコンがあります。Rensas Synergyに関しては、下記の記事で動作確認をしています。

RenesasSynergy(1)-LED点滅

今回は、STM32ファミリを使用してみたいと思います。STM32ファミリは、STMicroelectronicsの製品で、Arm Cortex-Mを搭載した32bitマイコンです。前から使用してみたいなと思っており、今回使用する機会ができたので使用したいと思います。

まずは、LEDの点滅をさせてみたいと思います。使用する評価ボードは、NUCLEO-F446REになります。STM32F446マイコンが搭載された評価ボードになります。mbedでも開発ができる評価ボードとなっております。今回は、「STM32CubeIDE」を使用して開発を行います。

「STM32CubeIDE」は下記のサイトからダウンロードできます。

https://www.st.com/ja/development-tools/stm32cubeide.html

それでは、LEDの点滅機能を構築したいと思います。まずは、新規プロジェクトを作成します。メニューより「File」→「New」→「STM32 Project」を選択します。

「Target Selection」画面が表示されるので、ターゲットを選択します。今回、評価ボードを使用するので、「Board Selector」タブを選択して、表示されたターゲットボードから使用するボードを選択後、「Next」ボタンを押します。

C++(3)-DLL作成

今回は、DLLを構築したいと思います。開発言語は、C++を使用します。開発環境は、Visual Studioです。DLLは、Dynamic Link Libraryの略です。動的リンクライブラリの意です。C++で構築した機能をC#で呼び出しを行いたいので、DLLを構築することにしました。

DLLから呼び出せる関数は下記の関数とします。

  • int calc_add(x, y); // 足算
  • int calc_sub(x, y); // 引算
  • int calc_mult(x, y); // 掛算掛
  • int calc_div(x, y); // 割算

作成したDLLからC#で関数を呼び出してみたいと思います。下記のような画面を作成して、DLLから関数を呼び出して演算します。

それでは、DLLを構築していきたいと思います。まずは、プロジェクトファイルを作成します。メニューより、ファイル、新規プロジェクト作成を選択します。

下記のような画面が表示されるので、テンプレート→VisualC++→Windowsデスクトップよりダイナミックリンクライブラリを選択、プロジェクト名(任意名)を入力して、OKを選択します。今回は、DllCalcというプロジェクト名にしました。

2021年3月3日 | カテゴリー : C++ | タグ : , | 投稿者 : prog

Kali Linux(5)-Exploit Windows7

前回は、ホストPC(Windows10 PC)とゲストPC(VM VirtualBox:Kali Linux)でSSH通信を行おうと思います。ホストPCがSSHのクライアントでゲストPCがSSHのサーバで動作させました。

内容に関しては下記のリンクを参照してください。

Kali Linux(4)-SSH通信

今回は、Kali LinuxゲストPC(VM VirtualBox)でreverse_tcpのペイロードを作成して、Windows7ゲストPC(VM VirtualBox)でペイロードを実行して、Kali LinuxゲストPCから WIndows7ゲストPCを操作してみたいと思います。

使用環境は、下記のとおりです。

  • Windows10
  • VM VirtualBox:Kali Linux

まずは、reverse_tcpのペイロードを作成していきます。下記コマンドを実行して、metesploitのインターフェースを表示します。

root@kali:/home/kali# msfcosole

Kali Linux(4)-SSH通信

前回は、VM VirtualBox上で動作するKali Linuxのネットワーク環境を構築しました。アダプター1をNATに割り当て、アダプター2をホストオンリーアダプタに割り当てました。内容に関しては下記のリンクを参照してください。

Kali Linux(3)-仮想環境のネットワーク構築

使用環境は、下記のとおりです。

  • Windows10
  • VM VirtualBox:Kali Linux

今回は、ホストPC(Windows10 PC)とゲストPC(VM VirtualBox:Kali Linux)でSSH通信を行おうと思います。ホストPCがSSHのクライアントでゲストPCがSSHのサーバで動作させようと思います。

それでは、SSH通信をしていきたいと思います。下記のようなコマンドを入力してログインします。

ssh root@localhost

下記のようなメッセージが表示されました。

ssh: connect to host localhost port 22: Connection refused

sshサーバが起動していないようなので、起動します。

service ssh start

再度コマンドを入力してログインを試みます。今度は、パスワードを問われるので、パスワードを入力します。すると下記のようなメッセージが表示されました。

Permission denied, please try again.

調べてみるとrootアカウントは、デフォルト状態では、ログインできないようです。新しいユーザアカウントを作成します。下記コマンドでアカウントを追加します。

Kali Linux(3)-仮想環境のネットワーク構築

今回は、VM VirtualBox上で動作するKali Linuxのネットワーク環境を構築しようと思います。

使用環境は、下記のとおりです。

  • Windows10
  • VM VirtualBox:Kali Linux

今回のネットワーク環境は、下記の通りです。

  • アダプター1:NAT
  • アダプター2:ホストオンリーアダプタ

VirtualBoxの設定画面→ネットワークから、対象アダプタのタブを選択して、ネットワークアダプタを有効化をON、割り当てを選んで、設定完了です。

それでは、Kali Linuxを起動して、ネットワークの設定を行っていきます。Kali Linuxを起動して右上にあるネットワークのアイコンをみると、ethe0はConnectになっていますが、eth1はOffになっています。

試しにeth1をConnectしてみると、今度はeth0がOffになります。

Beckhoff(6)-RS485通信画面表示

前回は、BECKHOFF機器のEL6021を使用したRS485通信機能に画面を付けてみました。下記のような画面を作成しました。

前回の内容は下記のリンクを参照してください。

Beckhoff(5)-RS485通信画面作成

前回は、PCのVisual Studioから動作させていることもあり、リアルタイム性はありません。今回は、C6015内でダイアログを表示させて、リアルタイム性をもたせたいと思います。

今回使用したBECKHOFFの機器とソフトウェア、開発環境は下記のとおりです。

【 ハードウェア 】

  • C6015(IPC)
  • EK1100(EtherCAT カプラ)
  • EL1809(デジタルインプット)
  • EL2809(デジタルアウトプット)
  • EL6021(RS485通信)

【ソフトウェア】

  • TC1200(TC3 PLC)
  • TF6340(TC3 Serial Communication)
  • TF1800(TC3 PLC HMI)

【開発環境】

  • Visual Studio

それでは、作成していきたいと思います。前回のプロジェクトを使用して、C6015に表示させます。前回のプロジェクトは下記のリンクを参考にしていください。

Beckhoff(5)-RS485通信画面作成

JavaScript(3)-Node.js(Websocket)

前回は、JavaScriptの実行環境の一つであるNode.jsを使用して、 httpサーバを構築しました。前回の内容は下記のページを参照してください。

JavaScript(2)-Node.js(http server)

今回は、Node.jsを使用してい、双方向通信をする機能を構築したいと思います。Webアプリケーションで双方向通信をするために、Websocket通信規格を使用します。

Node.jsで双方向通信をする方法も、httpサーバの時と同様でさまざまな方法があります。今回は、「ws」モジュールを使用して、双方向通信を構築しようと思います。具体的には、サーバ側にクライアント側が接続すると、クライアント側は、「To Server.」文字列を送信します。サーバ側はクライアント側と接続を完了すると「To Client」文字列を送信します。 それでは、早速、構築していきたいと思います。

今回、「ws」モジュールを使用します。「ws」モジュールは、「npm install」コマンドを使用してインストールします。

Beckhoff(5)-RS485通信画面作成

前回は、BECKHOFF機器のEL6021を用いたRS485通信をTwinCATのPLC機能を使って、PCから送信された文字列を受信して、受信した値にデリミタをつけてPCにエコーバックする機能を構築しました。

Beckhoff(4)-EL6021(RS485)のPLC動作

今回は、EL6021を使用したRS485通信機能に画面を付けてみようと思います。下記のような画面になります。

今回使用したBECKHOFFの機器とソフトウェア、開発環境は下記のとおりです。

【 ハードウェア 】

  • C6015(IPC)
  • EK1100(EtherCAT カプラ)
  • EL1809(デジタルインプット)
  • EL2809(デジタルアウトプット)
  • EL6021(RS485通信)

【ソフトウェア】

  • TC1200(TC3 PLC)
  • TF6340(TC3 Serial Communication)
  • TF1800(TC3 PLC HMI)

【開発環境】

  • Visual Studio

それでは、作成していきたいと思います。前回のプロジェクトに編集を加えて作成していこうと思います。前回のプロジェクトは下記のリンクをさんこうにしていください。

Beckhoff(4)-EL6021(RS485)のPLC動作

Beckhoff(4)-EL6021(RS485)のPLC動作

前回は、BECKHOFF機器のEEL6021の動作確認を行いました。Activate Free Run モードでEL6021を操作しました。通信相手は、PCに接続されたCONTECのUSB Micro Converterで、PCのソフトはTeratermを使用します。

Beckhoff(3)-EL6021(RS485)動作確認

今回は、BECKHOFF機器のEL6021の動作確認(RS485通信)をしたいと思います。

今回使用したBECKHOFFの機器とソフトウェア、開発環境は下記のとおりです。

【 ハードウェア 】

  • C6015(IPC)
  • EK1100(EtherCAT カプラ)
  • EL1809(デジタルインプット)
  • EL2809(デジタルアウトプット)
  • EL6021(RS485通信)

【ソフトウェア】

  • TC1200(TC3 PLC)
  • TF6340(TC3 Serial Communication)

【開発環境】

  • Visual Studio

EL6021はPCから送信された文字列を受信します。EL6021はPCから送信された文字列を受信すると、受信した値にデリミタをつけてPCにエコーバックする機能を構築します。

今回は、TF6340のライセンスを使用します。このライセンスはSerial CommunicationのFunctionBlockになります。データの送信、受信などが関数としてライブラリに登録されているので便利です。

それでは、作成していきたいと思います。プロジェクトは前回のものを続けて使用します。プロジェクトの作成方法やC6015への接続方法、デバイスのscan方法等は下記のリンクを参考にして作成してください。

Beckhoff(1)-機器動作確認

また、「Standard PLC Project」の追加方法は下記のリンクを参考にしてください。

Beckhoff(2)-PLC動作確認

TwinCAT Project_TEST→PLC→TEST→TEST Project→POUsを選択して、右クリックメニューより[Add]→[POU]を選択します。選択するとAdd POUダイアログが表示されるので、名前に「RECV 」と入力してopenボタンを押します。続いて、POUに「SEND」と「BACKGROUND」も同じように追加します。