# keyence-hostlink

> nodejs lib communication with keyence PLC

Latest version **0.0.3** (published 2021-08-13) · ISC license · 0 weekly downloads

## Install

```sh
npm install keyence-hostlink
pnpm add keyence-hostlink
yarn add keyence-hostlink
bun add keyence-hostlink
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.0.3 |
| Published | 2021-08-13 |
| First published | 2021-08-12 |
| Weekly downloads | 0 |
| License | ISC |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 0 |
| Unpacked size | 18.8 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 1 |
| Maintainers | chnbohwr |

## Links

- npm: https://www.npmjs.com/package/keyence-hostlink
- Repository: https://github.com/chnbohwr/keyence-hostlink
- Homepage: https://github.com/chnbohwr/keyence-hostlink#readme
- Issues: https://github.com/chnbohwr/keyence-hostlink/issues
- npm.io page: https://npm.io/package/keyence-hostlink

## Recent versions

- 0.0.3 (latest) — 2021-08-13
- 0.0.2 — 2021-08-12

## README

# keyence-hostlink

keyence-hostlink is a library that allows communication to KEYENCE PLC by Host link protocol

> this is not a official library

### to install
```
npm i -S keyence-hostlink
```

### example usage
```javascript
const { Hostlink } = require('./dist/index');

const link = new Hostlink({ timeout: 1000, host: '192.168.3.100', port: 8501 });

link.connect(() => {
  link.readItem('DM0', (error, data) => {
    console.log(error, data);
    process.exit();
  });
});
```

then the console will show 

```
false {
  message: <Buffer 52 44 20 44 4d 30 0d 0a>,
  address: 'DM0',
  result: '00011\r\n',
  resultBuffer: <Buffer 30 30 30 31 31 0d 0a>
}
```

### API

#### constructor(options)
create a hostlink instance, `const link = new Hostlink(options)`
- options:Net.NetConnectOpts use Nodejs Net options document is [here](https://nodes.duniter.io/typescript/duniter/typedoc/modules/_net_.html#netconnectopts)


#### connect(callback)
connect to PLC
- callback:function when connect success, it will trigger callback

#### readItem(address, callback)
read a address and trigger callback when it done or timeout
- address:string for example 'DM0'
- callback:(error:boolean, responseData)=>void when read item fail, error will be true.

callback responseData will be follow structure
```
{
  message: Buffer, // request message send to server
  address: string, // address to get
  result: string | null, // server response result string
  resultBuffer: Buffer | null, // server response buffer
  error?: any, // error detail information
}
```
#### writeItem(address, value, callback)
write value into address, and callbake will trigger when write done.
- address: string for example 'DM0'
- value:string for example '100',
- callback (err?: Error | undefined) => void

if callback first parameter is undefined, it means success.

---
_Source: https://npm.io/package/keyence-hostlink · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
