code: def write_area(self, area, dbnumber, start, data):
          
          wordlen = snap7.snap7types.S7WLByte
          type_ = snap7.snap7types.wordlen_to_ctypes[wordlen]
          size = len(data)
          logger.debug("writing area: %s dbnumber: %s start: %s: size %s: "
                        "type: %s" % (area, dbnumber, start, size, type_))
          cdata = (type_ * len(data)).from_buffer_copy(data)
          return self.library.Cli_WriteArea(self.pointer, area, dbnumber, start,
                                            size, wordlen, byref(cdata))
docs: This is the main function to write data into a PLC. It's the
          complementary function of Cli_ReadArea(), the parameters and their
          meanings are the same. The only difference is that the data is
          transferred from the buffer pointed by pUsrData into PLC.
  
          :param dbnumber: The DB number, only used when area= S7AreaDB
          :param start: offset to start writing
          :param data: a bytearray containing the payload