**************** Read ************************
package com.amjoey.moka7connectlogoplc;
import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import moka7.*;
public class MainActivity extends AppCompatActivity {
@Override protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override protected void onResume() {
super.onResume();
// we're going to simulate real time with thread that append data to the graph new Thread(new Runnable() {
@Override public void run() {
// we add 100 new entries for (int i = 0; i < 100; i++) {
runOnUiThread(new Runnable() {
@Override public void run() {
new PlcReader().execute("");
}
});
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
}
}
}
}).start();
}
S7Client client = new S7Client();
public void readdb_val(View v){
new PlcReader().execute("");
}
private class PlcReader extends AsyncTask<String, Void, String>{
String ret = "";
@Override protected String doInBackground(String... params){
try{
client.SetConnectionType(S7.S7_BASIC);
int res=client.ConnectTo("192.168.0.3",0,0);
if(res==0){//connection OK
byte[] data = new byte[4];
res = client.ReadArea(S7.S7AreaDB,1,10,4,data);
// ret = "value of DB1.DBD25: "+ S7.GetFloatAt(data,0); // ret = "value of DB1.DBD10: "+ S7.GetWordAt(data,0); ret = "Value of DB1.DBD10: "+ S7.GetWordAt(data,0)+"/"+ S7.GetWordAt(data,2);
/* byte[] dataWrite = new byte[2]; // S7.SetBitAt(dataWrite, 0, 1, true); // S7.SetDIntAt(dataWrite,0,5); S7.SetWordAt(dataWrite,0,700);
client.WriteArea(S7.S7AreaDB, 1, 12, 2, dataWrite); ret = "WriteArea of DB1.DBD12: OK "; */
}else{
ret = "ERR: "+ S7Client.ErrorText(res);
}
client.Disconnect();
}catch (Exception e) {
ret = "EXC: "+e.toString();
Thread.interrupted();
}
return "executed";
}
@Override protected void onPostExecute(String result){
TextView txout = (TextView) findViewById(R.id.textView);
txout.setText(ret);
}
}
}
**************** Write ************************
package com.amjoey.mokawriteplc;
import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
import Moka7.*;
public class MainActivity extends AppCompatActivity {
int iMemoryAdd;
int bMemoryVal;
@Override protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
S7Client client = new S7Client();
public void readdb_val(View v){
EditText mwAdd = (EditText) findViewById(R.id.txtMWAddress);
EditText mwVal = (EditText) findViewById(R.id.txtValue);
if (!mwAdd.getText().toString().equals("")){
iMemoryAdd = Integer.parseInt(mwAdd.getText().toString());
}else{
iMemoryAdd = 0;
}
if (!mwVal.getText().toString().equals("")){
bMemoryVal = Integer.parseInt(mwVal.getText().toString());
}else{
bMemoryVal = 0;
}
new PlcReader().execute("");
}
private class PlcReader extends AsyncTask<String, Void, String>{
String ret = "";
@Override protected String doInBackground(String... params){
try{
client.SetConnectionType(S7.S7_BASIC);
int res=client.ConnectTo("192.168.0.3",0,0);
if(res==0){//connection OK /* byte[] data = new byte[4]; res = client.ReadArea(S7.S7AreaDB,1,10,2,data); // ret = "value of DB1.DBD25: "+ S7.GetFloatAt(data,0); ret = "value of DB1.DBD10: "+ S7.GetWordAt(data,0); */
byte[] dataWrite = new byte[2];
// S7.SetBitAt(dataWrite, 0, 1, true); // S7.SetDIntAt(dataWrite,0,5); S7.SetWordAt(dataWrite,0,bMemoryVal);
client.WriteArea(S7.S7AreaDB, 1, iMemoryAdd, 2, dataWrite);
ret = "WriteArea of DB1.DBD" + iMemoryAdd + " : "+bMemoryVal;
}else{
ret = "ERR: "+ S7Client.ErrorText(res);
}
client.Disconnect();
}catch (Exception e) {
ret = "EXC: "+e.toString();
Thread.interrupted();
}
return "executed";
}
@Override protected void onPostExecute(String result){
TextView txout = (TextView) findViewById(R.id.textView);
txout.setText(ret);
}
}
}